import * as esbuild from 'esbuild'; import { existsSync } from 'node:fs'; const entries = [ 'src/lib/server/pipeline/worker-entry.ts', 'src/lib/server/pipeline/embed-worker-entry.ts' ]; try { const existing = entries.filter(e => existsSync(e)); if (existing.length === 0) { console.log('[build-workers] No worker entry files found yet, skipping.'); process.exit(0); } await esbuild.build({ entryPoints: existing, bundle: true, platform: 'node', target: 'node20', format: 'esm', outdir: 'build/workers', outExtension: { '.js': '.mjs' }, alias: { '$lib': './src/lib', '$lib/server': './src/lib/server' }, external: ['better-sqlite3', '@xenova/transformers'], banner: { js: "import { createRequire } from 'module'; const require = createRequire(import.meta.url);" } }); console.log(`[build-workers] Compiled ${existing.length} worker(s) to build/workers/`); } catch (err) { console.error('[build-workers] Error:', err); process.exit(1); }