Files
2026-07-13 12:45:37 +08:00

26 lines
1013 B
JavaScript

// Bundles desktop/src/server-host.ts (and through it the whole server) into
// build/server.mjs. esbuild resolves the server's `.js`-suffixed TS imports
// and flattens the @freellmapi/shared workspace symlink — only better-sqlite3
// stays external (native module, electron-rebuilt in desktop/node_modules).
import { build } from 'esbuild';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
await build({
entryPoints: [path.resolve(__dirname, '../src/server-host.ts')],
bundle: true,
platform: 'node',
format: 'esm',
target: 'node20',
outfile: path.resolve(__dirname, '../build/server.mjs'),
external: ['better-sqlite3'],
// Some inlined CJS deps (express internals) reference `require` at runtime;
// give the ESM bundle a working one.
banner: {
js: "import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);",
},
logLevel: 'info',
});