/** * esbuild config for Docker release bundle (apps/api/release/app.js). * Used by: node scripts/bundle-release.cjs */ const path = require('path'); const { createRequire } = require('module'); const requireFromApi = createRequire(path.join(__dirname, 'package.json')); module.exports = { entryPoints: [path.join(__dirname, 'dist/src/main.js')], outfile: path.join(__dirname, 'release/app.js'), bundle: true, platform: 'node', target: 'node20', format: 'cjs', // Prisma ships native binaries — keep out of the JS bundle and vendor into release/ // Nest optional peers are required dynamically and are not used by this API. external: [ '@prisma/client', '.prisma/client', '@nestjs/microservices', '@nestjs/microservices/*', '@nestjs/websockets', '@nestjs/websockets/*', 'msgpackr-extract', ], plugins: [ { name: 'class-transformer-storage', setup(build) { build.onResolve({ filter: /^class-transformer\/storage$/ }, () => ({ path: requireFromApi.resolve('class-transformer/cjs/storage.js'), })); }, }, ], sourcemap: false, logLevel: 'info', };