feat: migrate to bun

This commit is contained in:
TrèsAbhi committed 2024-07-20 20:36:36 -05:00
1 parent 6ecabe1d77
commit 9ffd20ffbf
10 files changed
+35 -45

No files matched your search

+2 -1
View File
@@ -19,4 +19,5 @@ temp/
/.yarn /.yarn
depots depots
public/sitemap* public/sitemap*
/firebase.json /firebase.json
target
+2 -2
View File
@@ -8,7 +8,7 @@
"build:assets": "bun scripts/buildAssets/index.ts", "build:assets": "bun scripts/buildAssets/index.ts",
"build:averages": "bun scripts/averages", "build:averages": "bun scripts/averages",
"build:db": "prisma generate", "build:db": "prisma generate",
"build:bot": "bun scripts/build.ts --production", "build:bot": "rm -rf dist/bot && bun build src/index.ts src/workers/bot.ts src/workers/render.ts --outdir dist/bot --target=bun --splitting --sourcemap=inline && cp -R src/lang dist/bot/lang",
"build:website": "bun build:db && bun build:sitemap && next build", "build:website": "bun build:db && bun build:sitemap && next build",
"build:sitemap": "bun scripts/sitemap.ts", "build:sitemap": "bun scripts/sitemap.ts",
"build:docs": "vitepress build docs", "build:docs": "vitepress build docs",
@@ -16,7 +16,7 @@
"dev:bot": "vite-node --script scripts/build && yarn start:bot", "dev:bot": "vite-node --script scripts/build && yarn start:bot",
"dev:docs": "vitepress dev docs", "dev:docs": "vitepress dev docs",
"dev:website": "next dev", "dev:website": "next dev",
"start:bot": "node --enable-source-maps dist/bot/index.cjs", "start:bot": "bun dist/bot/index.js",
"start:website": "next start", "start:website": "next start",
"host:docs": "vitepress preview docs", "host:docs": "vitepress preview docs",
"lint": "npx tsc", "lint": "npx tsc",
-8
View File
@@ -1,8 +0,0 @@
import { registerProcesses } from './core/blitzkit/processes';
import { secrets } from './core/blitzkit/secrets';
import { client } from './core/discord/client';
// console.log(`🟡 Launching bot ${client.shard?.ids[0]}`);
registerProcesses();
client.login(secrets.DISCORD_TOKEN);
+3 -4
View File
@@ -1,10 +1,9 @@
import { Worker } from 'worker_threads'; import { Worker } from 'worker_threads';
const MAX_WORKERS = 2; const RENDER_WORKERS = 1;
const workers = [...Array(MAX_WORKERS)].map(() => { const workers = [...Array(RENDER_WORKERS)].map(() => {
// const worker = new Worker('src/workers/render.ts'); const worker = new Worker('dist/bot/workers/render.js');
const worker = new Worker(`${__dirname}/workers/render.cjs`);
console.log(`🟡 Launching render worker ${worker.threadId}`); console.log(`🟡 Launching render worker ${worker.threadId}`);
return worker; return worker;
}); });
+1 -1
View File
@@ -1,6 +1,6 @@
import { ShardingManager } from 'discord.js'; import { ShardingManager } from 'discord.js';
import { secrets } from '../blitzkit/secrets'; import { secrets } from '../blitzkit/secrets';
export const manager = new ShardingManager(`${__dirname}/bot.cjs`, { export const manager = new ShardingManager('dist/bot/workers/bot.js', {
token: secrets.DISCORD_TOKEN, token: secrets.DISCORD_TOKEN,
}); });
+1 -1
View File
@@ -1,3 +1,3 @@
import { Locale } from 'discord.js'; import { Locale } from 'discord.js';
export const SUPPORTED_LOCALES: Locale[] = [Locale.SpanishES]; export const SUPPORTED_LOCALES: Locale[] = [Locale.EnglishUS, Locale.SpanishES];
+7 -11
View File
@@ -1,5 +1,4 @@
import { Locale } from 'discord.js'; import { Locale } from 'discord.js';
import enUS from '../../../lang/en-US.json';
import { SUPPORTED_LOCALES } from './constants'; import { SUPPORTED_LOCALES } from './constants';
export type TranslationFragmentTree = { export type TranslationFragmentTree = {
@@ -9,15 +8,12 @@ export type TranslationFragmentTree = {
}; };
export type TranslationFragment = string | TranslationFragmentTree; export type TranslationFragment = string | TranslationFragmentTree;
export const translations = SUPPORTED_LOCALES.map((locale) => ({ export const translations = SUPPORTED_LOCALES.reduce<
locale, Partial<Record<Locale, TranslationFragment>>
translations: require(`../../../lang/${locale}.json`), >(
})).reduce( (table, locale) => ({
(table, { locale, translations }) => ({
...table, ...table,
[locale]: translations, [locale]: require(`../lang/${locale}.json`),
}), }),
{ {},
[Locale.EnglishUS]: enUS, );
},
) as Partial<Record<Locale, TranslationFragment>>;
+4 -6
View File
@@ -23,14 +23,12 @@ export function translator(localeRaw: Locale) {
fragment = fragment[pathItem]; fragment = fragment[pathItem];
if (typeof fragment === 'undefined') { if (typeof fragment === 'undefined') {
const message = `Undefined translation at "${pathItem}" in "${path}" for locale "${locale}"`;
if (locale === Locale.EnglishUS) { if (locale === Locale.EnglishUS) {
throw new Error( throw new Error(message);
`Undefined translation at "${pathItem}" in "${path}" for locale "${locale}"`,
);
} else { } else {
console.warn( console.warn(`${message} falling back to en-US`);
`Undefined translation at "${pathItem}" in "${path}" for locale "${locale}"; falling back to en-US`,
);
return translator(Locale.EnglishUS).translate(path, literals); return translator(Locale.EnglishUS).translate(path, literals);
} }
} }
+7 -11
View File
@@ -1,12 +1,8 @@
// import { manager } from './core/discord/manager'; import { manager } from './core/discord/manager';
// manager.on('shardCreate', (shard) => { manager
// console.log(`🟡 Launching shard ${shard.id}`); .on('shardCreate', (shard) => {
// shard.on('ready', () => console.log(`🟢 Launched shard ${shard.id}`)); console.log(`🟡 Launching shard ${shard.id}`);
// }); shard.on('ready', () => console.log(`🟢 Launched shard ${shard.id}`));
})
// manager.spawn(); .spawn();
// TODO: re-enable if needed in the future
import './bot';
+8
View File
@@ -0,0 +1,8 @@
import { registerProcesses } from '../core/blitzkit/processes';
import { secrets } from '../core/blitzkit/secrets';
import { client } from '../core/discord/client';
console.log(`🟡 Launching bot ${client.shard?.ids[0]}`);
registerProcesses();
client.login(secrets.DISCORD_TOKEN);