import { MssqlProvider } from 'libdashstore/providers/mssql'; import { BetterSqlite3Provider } from 'libdashstore/providers/better-sqlite3'; import env from '../config/env.js'; function getMssqlConfig() { const { server, database, user, password, port, encrypt, trustServerCertificate } = env.mssql; if (!server || !database || !user || !password) { throw new Error('MSSQL is not configured (MSSQL_SERVER, MSSQL_DATABASE, MSSQL_USER, MSSQL_PASSWORD required)'); } return { server, database, user, password, port, storageDir: env.storageDir, pool: { max: 10, min: 0, idleTimeoutMillis: 30_000, }, options: { encrypt, trustServerCertificate, }, }; } /** * Creates the configured (uninitialized) libdashstore provider from `.env`. * @returns {MssqlProvider | BetterSqlite3Provider} */ export function createProvider() { if (env.dbProvider === 'sqlite' || env.dbProvider === 'better-sqlite3') { return new BetterSqlite3Provider(env.sqlite); } return new MssqlProvider(getMssqlConfig(), { storageDir: env.storageDir }); }