import { defineConfig } from 'tsup' // Нативные модули остаются внешними (ставятся в образ отдельно), // всё остальное (fastify, jose, drizzle, workspace-пакеты) бандлится в один файл. const NATIVE = ['better-sqlite3', '@node-rs/argon2'] export default defineConfig({ entry: ['src/server.ts'], format: ['esm'], target: 'node22', external: NATIVE, noExternal: [/^(?!better-sqlite3$|@node-rs\/argon2).+/], // CJS-зависимости внутри ESM-бандла используют require/__dirname. banner: { js: [ "import { createRequire as __cr } from 'node:module';", "import { fileURLToPath as __fu } from 'node:url';", "import { dirname as __dn } from 'node:path';", 'const require = __cr(import.meta.url);', 'const __filename = __fu(import.meta.url);', 'const __dirname = __dn(__filename);', ].join('\n'), }, clean: true, })