Files
blitzkit/scripts/build.ts
T

53 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-10-01 16:56:59 -05:00
import { build } from 'esbuild';
2023-10-16 20:44:47 -05:00
import { cp, readdir } from 'fs/promises';
2024-03-17 21:45:55 -05:00
import { argv } from 'process';
const isDev = argv.includes('--dev');
2023-10-01 16:56:59 -05:00
2023-10-16 20:44:47 -05:00
readdir('src/workers').then((workers) => {
const files = [
'bot',
'index',
2023-10-16 20:08:08 -05:00
2023-10-16 20:44:47 -05:00
...workers.map((file) => `workers/${file.replace('.ts', '')}`),
];
2023-10-01 16:56:59 -05:00
2023-10-16 20:44:47 -05:00
build({
entryPoints: files.map((file) => `src/${file}.ts`),
outdir: 'dist/bot',
2023-10-01 16:56:59 -05:00
2023-10-16 20:44:47 -05:00
platform: 'node',
tsconfig: 'tsconfig.esbuild.json',
loader: {
'.node': 'copy',
'.ttf': 'file',
},
format: 'cjs',
jsx: 'transform',
outExtension: {
'.js': '.cjs',
},
2023-10-01 16:56:59 -05:00
2024-03-17 21:45:55 -05:00
external: ['sharp'],
2023-10-16 20:44:47 -05:00
bundle: true,
sourcemap: true,
2023-10-20 11:11:41 -05:00
minifyIdentifiers: false, // causes goofy errors
2023-10-16 20:44:47 -05:00
minifySyntax: true,
minifyWhitespace: true,
2023-10-01 16:56:59 -05:00
2023-10-16 20:44:47 -05:00
logLevel: 'info',
});
2023-10-01 16:56:59 -05:00
});
2023-10-16 20:44:47 -05:00
// copy schema.prisma
cp('prisma/schema.prisma', 'dist/bot/schema.prisma');
readdir('node_modules/prisma').then((files) =>
files
.filter((file) => file.endsWith('.node'))
.map((file) => cp(`node_modules/prisma/${file}`, `dist/bot/${file}`)),
);
2024-03-17 21:45:55 -05:00
// copy sharp as is
if (!isDev) {
cp('node_modules/sharp', 'dist/bot/node_modules/sharp', { recursive: true });
}