src.nth.io/

summaryrefslogtreecommitdiff
path: root/src/sqlite-lazy.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/sqlite-lazy.ts')
-rw-r--r--src/sqlite-lazy.ts17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/sqlite-lazy.ts b/src/sqlite-lazy.ts
new file mode 100644
index 0000000..587f662
--- /dev/null
+++ b/src/sqlite-lazy.ts
@@ -0,0 +1,17 @@
+/**
+ * Lazy stand-in for node:sqlite, used only by the esbuild bundle (via
+ * --alias:node:sqlite=./dist/sqlite-lazy.js).
+ *
+ * In an ESM bundle, external imports are hoisted and evaluated before any
+ * bundled code runs, so a direct node:sqlite import would fire Node's
+ * ExperimentalWarning before the filter in warnings.ts is installed. This
+ * module loads node:sqlite with require() at module-initialization time
+ * instead, which the bundle defers until after the filter is active.
+ */
+import { createRequire } from "node:module";
+
+const nodeRequire = createRequire(import.meta.url);
+const sqlite = nodeRequire("node:sqlite") as typeof import("node:sqlite");
+
+export const DatabaseSync = sqlite.DatabaseSync;
+export const StatementSync = sqlite.StatementSync;