57 lines
1.5 KiB
JavaScript
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,
|
|
}),
|
|
]);
|