From ced3897696087091f262221139fc6874869ce977 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Tue, 26 Nov 2024 21:03:01 -0600 Subject: [PATCH] feat: esbuild build --- package.json | 7 +++--- .../bot/src/core/blitzkit/jsxToSvg/index.ts | 2 +- .../bot/src/core/blitzkit/svgToPngThreaded.ts | 2 +- packages/bot/src/core/discord/manager.ts | 2 +- packages/scripts/package.json | 4 +++- packages/scripts/src/buildBot.ts | 22 +++++++++++++++++++ 6 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 packages/scripts/src/buildBot.ts diff --git a/package.json b/package.json index 19e6371c4..71f09bfd8 100644 --- a/package.json +++ b/package.json @@ -11,14 +11,14 @@ "scripts": { "build:assets": "cd packages/scripts && bun run build:assets", "build:averages": "bun --filter=@blitzkit/scripts run build:averages", - "build:bot": "", + "build:bot": "cd packages/scripts && bun run build:bot", "build:website": "bun build:prisma --no-hints && cd packages/website && bun run build", "build:prisma": "prisma generate", "build:sitemap": "bun scripts/sitemap.ts", "build:docs": "vitepress build docs", "build:ratingleaderboard": "bun --script scripts/buildRatingLeaderboard.ts", - "dev:bot": "cd packages/bot && bun run dev", - "start:bot": "cd packages/bot && bun run start", + "dev:bot": "bun run build:bot && bun start:bot", + "start:bot": "bun dist/bot/main.js", "dev:docs": "vitepress dev docs", "dev:website": "cd packages/website && bun run dev", "dev:api": "bun --filter=@blitzkit/api run dev", @@ -45,7 +45,6 @@ "@types/bun": "latest", "@types/lodash-es": "^4.17.12", "@types/node": "^22.5.4", - "esbuild": "^0.19.12", "prettier": "^3.3.3", "prisma": "^5.19.1", "typescript": "^5.5.4" diff --git a/packages/bot/src/core/blitzkit/jsxToSvg/index.ts b/packages/bot/src/core/blitzkit/jsxToSvg/index.ts index 43b08734c..3ad7eaa47 100644 --- a/packages/bot/src/core/blitzkit/jsxToSvg/index.ts +++ b/packages/bot/src/core/blitzkit/jsxToSvg/index.ts @@ -10,7 +10,7 @@ const fontsPromise = [ { file: robotoBold, weight: 700 as const }, { file: robotoBlack, weight: 900 as const }, ].map(async ({ file, weight }) => { - const data = await readFile(file); + const data = await readFile(`${__dirname}/${file}`); return { name: 'Roboto', weight, data }; }); diff --git a/packages/bot/src/core/blitzkit/svgToPngThreaded.ts b/packages/bot/src/core/blitzkit/svgToPngThreaded.ts index c29b40eda..344fb4627 100644 --- a/packages/bot/src/core/blitzkit/svgToPngThreaded.ts +++ b/packages/bot/src/core/blitzkit/svgToPngThreaded.ts @@ -3,7 +3,7 @@ import { Worker } from 'worker_threads'; const RENDER_WORKERS = 1; const workers = [...Array(RENDER_WORKERS)].map(() => { - const worker = new Worker('src/workers/render.ts'); + const worker = new Worker('dist/bot/workers/render.js'); console.log(`🟡 Launching render worker ${worker.threadId}`); return worker; }); diff --git a/packages/bot/src/core/discord/manager.ts b/packages/bot/src/core/discord/manager.ts index 0dd8cbc50..280d1d67d 100644 --- a/packages/bot/src/core/discord/manager.ts +++ b/packages/bot/src/core/discord/manager.ts @@ -1,6 +1,6 @@ import { assertSecret } from '@blitzkit/core'; import { ShardingManager } from 'discord.js'; -export const manager = new ShardingManager('src/workers/bot.ts', { +export const manager = new ShardingManager('dist/bot/workers/bot.js', { token: assertSecret(process.env.DISCORD_TOKEN), }); diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 6a438fe18..004f8cbf1 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -8,9 +8,11 @@ "setup:depotdownloader": "bun src/setupDepotDownloader.ts", "setup:patches": "bun src/applyPatches.ts", "build:reviews": "bun src/reviews.ts", - "build:ids": "bun src/discoverIds.ts" + "build:ids": "bun src/discoverIds.ts", + "build:bot": "bun src/buildBot.ts" }, "dependencies": { + "esbuild": "^0.19.12", "@blitzkit/core": "workspace:*", "@gltf-transform/core": "^4.0.10", "@gltf-transform/extensions": "^4.0.10", diff --git a/packages/scripts/src/buildBot.ts b/packages/scripts/src/buildBot.ts new file mode 100644 index 000000000..39927f2c7 --- /dev/null +++ b/packages/scripts/src/buildBot.ts @@ -0,0 +1,22 @@ +import { build } from 'esbuild'; +import { readdir } from 'fs/promises'; + +const root = '../bot'; +const workers = await readdir(`${root}/src/workers`); + +build({ + entryPoints: [ + `${root}/src/main.ts`, + ...workers.map((worker) => `${root}/src/workers/${worker}`), + ], + bundle: true, + outdir: '../../dist/bot', + platform: 'node', + format: 'esm', + loader: { + '.ttf': 'file', + '.node': 'file', + }, + minify: true, + sourcemap: true, +});