diff --git a/packages/scripts/src/buildBot.ts b/packages/scripts/src/buildBot.ts index 39927f2c7..cc43b78ba 100644 --- a/packages/scripts/src/buildBot.ts +++ b/packages/scripts/src/buildBot.ts @@ -1,13 +1,17 @@ import { build } from 'esbuild'; -import { readdir } from 'fs/promises'; +import { cp, readdir, rm } from 'fs/promises'; -const root = '../bot'; -const workers = await readdir(`${root}/src/workers`); +const srcRoot = '../bot'; +const distRoot = '../../dist/bot'; +const modulesRoot = '../../node_modules'; +const workers = await readdir(`${srcRoot}/src/workers`); + +await rm(distRoot, { recursive: true, force: true }); build({ entryPoints: [ - `${root}/src/main.ts`, - ...workers.map((worker) => `${root}/src/workers/${worker}`), + `${srcRoot}/src/main.ts`, + ...workers.map((worker) => `${srcRoot}/src/workers/${worker}`), ], bundle: true, outdir: '../../dist/bot', @@ -15,8 +19,25 @@ build({ format: 'esm', loader: { '.ttf': 'file', - '.node': 'file', + '.node': 'empty', }, minify: true, sourcemap: true, }); + +await Promise.all( + (await readdir(`${modulesRoot}/@resvg`)).map(async (module) => { + const files = await readdir(`${modulesRoot}/@resvg/${module}`).then( + (files) => files.filter((file) => file.endsWith('.node')), + ); + + await Promise.all( + files.map(async (file) => { + await cp( + `${modulesRoot}/@resvg/${module}/${file}`, + `${distRoot}/workers/${file}`, + ); + }), + ); + }), +);