From 140b4fed218cc8d92cf40872e46656bd6aed1591 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Wed, 20 May 2026 19:08:31 -0300 Subject: [PATCH] fix(db): use createRequire for better-sqlite3 and node:sqlite in ESM context --- src/lib/db/adapters/driverFactory.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/lib/db/adapters/driverFactory.ts b/src/lib/db/adapters/driverFactory.ts index ce5da78fb7..65ad9f7236 100644 --- a/src/lib/db/adapters/driverFactory.ts +++ b/src/lib/db/adapters/driverFactory.ts @@ -1,9 +1,12 @@ // src/lib/db/adapters/driverFactory.ts import fs from "node:fs"; +import { createRequire } from "node:module"; +import { createBetterSqliteAdapter } from "./betterSqliteAdapter"; import type { SqliteAdapter, PreparedStatement, RunResult } from "./types"; +const _require = createRequire(import.meta.url); + declare global { - var __omnirouteSqlJsAdapters: Map | undefined; } @@ -130,15 +133,10 @@ export function tryOpenSync( // better-sqlite3: rápido, nativo — skip em Bun if (!process.versions.bun) { try { - - const BetterSqlite = require("better-sqlite3") as { + const BetterSqlite = _require("better-sqlite3") as { new (p: string, o?: object): import("better-sqlite3").Database; }; const db = new BetterSqlite(filePath, options); - - const { createBetterSqliteAdapter } = require("./betterSqliteAdapter") as { - createBetterSqliteAdapter: (db: import("better-sqlite3").Database) => SqliteAdapter; - }; return createBetterSqliteAdapter(db); } catch { // continua para próximo driver @@ -150,7 +148,7 @@ export function tryOpenSync( const [maj, min] = (process.versions.node ?? "0.0").split(".").map(Number); if (maj > 22 || (maj === 22 && min >= 5)) { try { - const { DatabaseSync } = require("node:sqlite") as { + const { DatabaseSync } = _require("node:sqlite") as { DatabaseSync: new (p: string) => Parameters[0]; }; const db = new DatabaseSync(filePath);