summaryrefslogtreecommitdiff
path: root/scripts/build-assets.mjs
diff options
context:
space:
mode:
authorおさむのひと <46447427+samunohito@users.noreply.github.com>2025-11-30 13:27:44 +0900
committerGitHub <noreply@github.com>2025-11-30 13:27:44 +0900
commitfe01a5a28f34c873019ae3c34086acd6bd791a1d (patch)
treef4d8e8c4a0e97c120b272c3d253ea62789cc4afd /scripts/build-assets.mjs
parentfix(deps): update [frontend] update dependencies [ci skip] (#16901) (diff)
downloadmisskey-fe01a5a28f34c873019ae3c34086acd6bd791a1d.tar.gz
misskey-fe01a5a28f34c873019ae3c34086acd6bd791a1d.tar.bz2
misskey-fe01a5a28f34c873019ae3c34086acd6bd791a1d.zip
refactor: localesをworkspace管理下のパッケージに (#16895)
* refactor: localesをworkspace管理下のパッケージに * fix copilot review * move * move * rename * fix ci * revert unwanted indent changes * fix * fix * fix * fix * 間違えてコミットしていたのを戻す * 不要 * 追加漏れ * ymlの場所だけ戻す * localesの位置を戻したのでこの差分は不要 * 内容的にlocalesにある方が正しい * i18nパッケージ用のREADME.mdを用意 * fix locale.yml * fix locale.yml --------- Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
Diffstat (limited to 'scripts/build-assets.mjs')
-rw-r--r--scripts/build-assets.mjs97
1 files changed, 34 insertions, 63 deletions
diff --git a/scripts/build-assets.mjs b/scripts/build-assets.mjs
index e610a72380..34883e3513 100644
--- a/scripts/build-assets.mjs
+++ b/scripts/build-assets.mjs
@@ -11,9 +11,7 @@ import * as yaml from 'js-yaml';
import postcss from 'postcss';
import * as terser from 'terser';
-import { build as buildLocales } from '../locales/index.js';
-import generateDTS from '../locales/generateDTS.js';
-import meta from '../package.json' with { type: "json" };
+import { locales } from 'i18n';
import buildTarball from './tarball.mjs';
const configDir = fileURLToPath(new URL('../.config', import.meta.url));
@@ -23,86 +21,59 @@ const configPath = process.env.MISSKEY_CONFIG_YML
? path.resolve(configDir, 'test.yml')
: path.resolve(configDir, 'default.yml');
-let locales = buildLocales();
-
async function loadConfig() {
return fs.readFile(configPath, 'utf-8').then(data => yaml.load(data)).catch(() => null);
}
async function copyFrontendFonts() {
- await fs.cp('./packages/frontend/node_modules/three/examples/fonts', './built/_frontend_dist_/fonts', { dereference: true, recursive: true });
-}
-
-async function copyFrontendLocales() {
- generateDTS();
-
- await fs.mkdir('./built/_frontend_dist_/locales', { recursive: true });
-
- const v = { '_version_': meta.version };
-
- for (const [lang, locale] of Object.entries(locales)) {
- await fs.writeFile(`./built/_frontend_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
- }
+ await fs.cp('./packages/frontend/node_modules/three/examples/fonts', './built/_frontend_dist_/fonts', { dereference: true, recursive: true });
}
async function copyBackendViews() {
- await fs.cp('./packages/backend/src/server/web/views', './packages/backend/built/server/web/views', { recursive: true });
+ await fs.cp('./packages/backend/src/server/web/views', './packages/backend/built/server/web/views', { recursive: true });
}
async function buildBackendScript() {
- await fs.mkdir('./packages/backend/built/server/web', { recursive: true });
+ await fs.mkdir('./packages/backend/built/server/web', { recursive: true });
- for (const file of [
- './packages/backend/src/server/web/boot.js',
- './packages/backend/src/server/web/boot.embed.js',
- './packages/backend/src/server/web/bios.js',
- './packages/backend/src/server/web/cli.js',
- './packages/backend/src/server/web/error.js',
- ]) {
- let source = await fs.readFile(file, { encoding: 'utf-8' });
- source = source.replaceAll('LANGS', JSON.stringify(Object.keys(locales)));
- const { code } = await terser.minify(source, { toplevel: true });
- await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, code);
- }
+ for (const file of [
+ './packages/backend/src/server/web/boot.js',
+ './packages/backend/src/server/web/boot.embed.js',
+ './packages/backend/src/server/web/bios.js',
+ './packages/backend/src/server/web/cli.js',
+ './packages/backend/src/server/web/error.js',
+ ]) {
+ let source = await fs.readFile(file, { encoding: 'utf-8' });
+ source = source.replaceAll('LANGS', JSON.stringify(Object.keys(locales)));
+ const { code } = await terser.minify(source, { toplevel: true });
+ await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, code);
+ }
}
async function buildBackendStyle() {
- await fs.mkdir('./packages/backend/built/server/web', { recursive: true });
+ await fs.mkdir('./packages/backend/built/server/web', { recursive: true });
- for (const file of [
- './packages/backend/src/server/web/style.css',
- './packages/backend/src/server/web/style.embed.css',
- './packages/backend/src/server/web/bios.css',
- './packages/backend/src/server/web/cli.css',
- './packages/backend/src/server/web/error.css'
- ]) {
- const source = await fs.readFile(file, { encoding: 'utf-8' });
- const { css } = await postcss([cssnano({ zindex: false })]).process(source, { from: undefined });
- await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, css);
- }
+ for (const file of [
+ './packages/backend/src/server/web/style.css',
+ './packages/backend/src/server/web/style.embed.css',
+ './packages/backend/src/server/web/bios.css',
+ './packages/backend/src/server/web/cli.css',
+ './packages/backend/src/server/web/error.css'
+ ]) {
+ const source = await fs.readFile(file, { encoding: 'utf-8' });
+ const { css } = await postcss([cssnano({ zindex: false })]).process(source, { from: undefined });
+ await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, css);
+ }
}
async function build() {
- await Promise.all([
- copyFrontendFonts(),
- copyFrontendLocales(),
- copyBackendViews(),
- buildBackendScript(),
- buildBackendStyle(),
+ await Promise.all([
+ copyFrontendFonts(),
+ copyBackendViews(),
+ buildBackendScript(),
+ buildBackendStyle(),
loadConfig().then(config => config?.publishTarballInsteadOfProvideRepositoryUrl && buildTarball()),
- ]);
+ ]);
}
await build();
-
-if (process.argv.includes('--watch')) {
- const watcher = fs.watch('./locales');
- for await (const event of watcher) {
- const filename = event.filename?.replaceAll('\\', '/');
- if (/^[a-z]+-[A-Z]+\.yml/.test(filename)) {
- console.log(`update ${filename} ...`)
- locales = buildLocales();
- await copyFrontendLocales()
- }
- }
-}