Fix silent exit when a query runs on a connection left idle by a prompt

An idle Bun.SQL connection does not keep the event loop alive. After an
inquirer prompt released stdin, the next query let Bun exit with code 0
mid-query: `schema` never applied confirmed destructive changes, and
`admin` table views exited instead of showing results. Hold the loop open
for the duration of every query and transaction.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-16 06:18:59 +01:00
co-authored by Claude Opus 5.5
parent 9b8aba639e
commit 688f4bcb58
6 changed files with 46 additions and 9 deletions
+7
View File
@@ -15,6 +15,13 @@ type Param = {
* and CRUD do not open a new connection per query.
*/
export declare function resolveClient(config?: BunMariaDBConfig): Bun.SQL | undefined;
/**
* Keep the event loop alive until `fn` settles.
* An idle Bun.SQL connection does not hold the process open, so a query sent
* on it after something else released the loop (e.g. an inquirer prompt
* releasing stdin) lets Bun exit silently mid-query.
*/
export declare function holdEventLoop<T>(fn: () => Promise<T>): Promise<T>;
/**
* # Main DB Handler Function
*/