fix(cli): support loading bknd.config.ts and detect runtime mismatch

Add jiti to handle TypeScript config imports natively in the CLI, removing the need for npx tsx or --experimental-strip-types workarounds. Detect Bun adapter usage under Node and suggest running CLI with the correct runtime.

Closes #360
This commit is contained in:
Cameron Pak
2026-03-07 08:41:04 -06:00
parent e6b17f6424
commit 827e7faa7f
2 changed files with 14 additions and 1 deletions
+7
View File
@@ -112,7 +112,14 @@ export async function makeAppFromEnv(options: Partial<RunOptions> = {}) {
const config = await loadConfigFile(configFilePath); const config = await loadConfigFile(configFilePath);
app = await makeConfigApp(config, options.server); app = await makeConfigApp(config, options.server);
} catch (e) { } catch (e) {
if (e instanceof ReferenceError && e.message === "Bun is not defined") {
console.error(
c.red("Your config imports from a Bun-specific adapter, but the CLI is running under Node."),
`\nRun with Bun instead:\n\n ${c.cyan("bun node_modules/.bin/bknd")} ${c.dim(process.argv.slice(2).join(" "))}\n`,
);
} else {
console.error("Failed to load config:", e); console.error("Failed to load config:", e);
}
process.exit(1); process.exit(1);
} }
@@ -97,6 +97,12 @@ The `app` function is useful if you need a cross-platform way to access the envi
TypeScript configuration files (`.ts`) are fully supported and work out of the box with `npx bknd run` — no additional flags or tools required. TypeScript configuration files (`.ts`) are fully supported and work out of the box with `npx bknd run` — no additional flags or tools required.
If your config imports from a runtime-specific adapter (e.g. `bknd/adapter/bun`), you need to run the CLI with that runtime:
```sh
bun node_modules/.bin/bknd run
```
### Turso/LibSQL database ### Turso/LibSQL database
To start an instance with a Turso/LibSQL database, run the following: To start an instance with a Turso/LibSQL database, run the following: