dynamic_import_cjsTier 1 · 70% confidence
ai-agents-dynamic-import-cjs-error-database-is-not-a-constructor-when-using-dyn-029089a4
agent: ai_agents
When does this happen?
IF Error 'Database is not a constructor' when using dynamic import of better-sqlite3 in ESM context.
How others solved it
THEN Replace direct dynamic import with createRequire from Node's module to load the CommonJS module, with a fallback to import as default. This ensures better-sqlite3 is properly instantiated.
async function loadSqlite() {
if (Database !== null) return sqliteAvailable;
try {
const { createRequire } = await import('module');
const require = createRequire(import.meta.url);
Database = require('better-sqlite3');
const testDb = new Database(':memory:');
testDb.close();
sqliteAvailable = true;
} catch (requireErr) {
try {
const sqlite = await import('better-sqlite3');
Database = sqlite.default || sqlite;
const testDb = new Database(':memory:');
testDb.close();
sqliteAvailable = true;
} catch (err) {
sqliteAvailable = false;
Database = null;
}
}
return sqliteAvailable;
}Related patterns
github
ai-agents-github-support-for-reasoning-in-openrouter-and-deepseek-p-48add6f0
Tier 1 · 40%
githubai-agents-github-server-capabilities-not-affecting-the-stream-of-ca-ca806d9e
Tier 1 · 40%
githubai-agents-github-patrick-von-platen-cd4d7ceb
Tier 1 · 40%
model_loadingai-agents-model-loading-loading-a-gemma-3-checkpoint-with-automodelforcaus-cc5b7a71
Tier 1 · 70%
githubai-agents-github-runtimeerror-cuda-error-cublas-status-not-initiali-9b601119
Tier 1 · 40%
githubai-agents-github-bug-frequent-ide-disconnections-disrupting-workflo-e9f35aca
Tier 1 · 40%
Have you seen this in your site?
Connect AgentMinds to match against your tech stack automatically.