mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
feat: migrate to bun
This commit is contained in:
1 parent
6ecabe1d77
commit
9ffd20ffbf
10 files changed
+35
-45
No files matched your search
+2
-1
@@ -19,4 +19,5 @@ temp/
|
|||||||
/.yarn
|
/.yarn
|
||||||
depots
|
depots
|
||||||
public/sitemap*
|
public/sitemap*
|
||||||
/firebase.json
|
/firebase.json
|
||||||
|
target
|
||||||
+2
-2
@@ -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",
|
||||||
|
|||||||
@@ -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);
|
|
||||||
@@ -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,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,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];
|
||||||
@@ -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>>;
|
|
||||||
@@ -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
@@ -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';
|
|
||||||
@@ -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);
|
||||||
Reference in new issue
Block a user