Files
2026-07-26 12:29:43 +09:00

57 lines
1.5 KiB
JavaScript

import { mkdir, writeFile, cp } from "node:fs/promises";
import locales from "../locales/index.js";
import meta from "../package.json" with { type: "json" };
import { build } from "esbuild";
const customDir = process.env.ICESHRIMP_CUSTOM_DIR ?? "./custom";
Promise.all([
// copy:client:locales
(async () => {
await mkdir("./built/_client_dist_/locales", { recursive: true });
const v = { _version_: meta.version };
for (const [lang, locale] of Object.entries(locales)) {
await writeFile(
`./built/_client_dist_/locales/${lang}.${meta.version}.json`,
JSON.stringify({ ...locale, ...v }),
"utf-8",
);
}
})(),
// copy:backend:views
cp(
"./packages/backend/src/server/web/views",
"./packages/backend/built/server/web/views",
{ recursive: true },
),
// copy:backend:custom
cp(`${customDir}/assets`, "./packages/backend/assets", {
recursive: true,
}),
// build:backend:script
build({
entryPoints: [
"./packages/backend/src/server/web/boot.js",
"./packages/backend/src/server/web/bios.js",
"./packages/backend/src/server/web/cli.js",
],
outdir: "./packages/backend/built/server/web/",
define: {
LANGS: JSON.stringify(Object.keys(locales)),
},
minify: true,
}),
// build:backend:style
build({
entryPoints: [
"./packages/backend/src/server/web/style.css",
"./packages/backend/src/server/web/bios.css",
"./packages/backend/src/server/web/cli.css",
],
outdir: "./packages/backend/built/server/web/",
minify: true,
}),
]);