diff --git a/packages/api/index.ts b/packages/api/index.ts index efd2c979e8..24bf57695d 100644 --- a/packages/api/index.ts +++ b/packages/api/index.ts @@ -11,6 +11,8 @@ import { validateNodeVersion } from './validateNodeVersion'; export * from './methods'; export * as utils from './utils'; +export const internal = lib; + export async function init(config: InitConfig = {}) { validateNodeVersion(); diff --git a/packages/api/package.json b/packages/api/package.json index d6f8b21a57..530756f234 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -20,10 +20,10 @@ "compare-versions": "^6.1.1", "loot-core": "workspace:^", "node-fetch": "^3.3.2", - "rollup-plugin-visualizer": "^6.0.5", "uuid": "^13.0.0" }, "devDependencies": { + "rollup-plugin-visualizer": "^6.0.5", "typescript": "^5.9.3", "typescript-strict-plugin": "^2.4.4", "vite": "^7.3.1", diff --git a/packages/api/vite.config.ts b/packages/api/vite.config.ts index 3a87b2a2dc..e3600179a8 100644 --- a/packages/api/vite.config.ts +++ b/packages/api/vite.config.ts @@ -25,6 +25,16 @@ function copyMigrationsAndDefaultDb() { name: 'copy-migrations-and-default-db', closeBundle() { const migrationsSrc = path.join(lootCoreRoot, 'migrations'); + const defaultDbPath = path.join(lootCoreRoot, 'default-db.sqlite'); + + if (!fs.existsSync(migrationsSrc)) { + throw new Error(`migrations directory not found at ${migrationsSrc}`); + } + const migrationsStat = fs.statSync(migrationsSrc); + if (!migrationsStat.isDirectory()) { + throw new Error(`migrations path is not a directory: ${migrationsSrc}`); + } + const migrationsDest = path.join(distDir, 'migrations'); fs.mkdirSync(migrationsDest, { recursive: true }); for (const name of fs.readdirSync(migrationsSrc)) { @@ -35,10 +45,11 @@ function copyMigrationsAndDefaultDb() { ); } } - fs.copyFileSync( - path.join(lootCoreRoot, 'default-db.sqlite'), - path.join(distDir, 'default-db.sqlite'), - ); + + if (!fs.existsSync(defaultDbPath)) { + throw new Error(`default-db.sqlite not found at ${defaultDbPath}`); + } + fs.copyFileSync(defaultDbPath, path.join(distDir, 'default-db.sqlite')); }, }; }