Files
CashuMints.space/web/scripts/i18n-build-check.mjs
T
2026-08-20 22:41:25 +02:00

30 lines
1.1 KiB
JavaScript

/**
* The build's front door to `check-i18n.mjs`.
*
* Imported by `astro.config.mjs` so a catalog problem is found before a single page
* renders, rather than after a two-minute build produces 180 pages with a raw key on
* them. Errors throw and stop the build; missing keys print and let it continue.
*/
import { spawnSync } from 'node:child_process';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const here = path.dirname(fileURLToPath(import.meta.url));
export async function checkCatalogs() {
const result = spawnSync(process.execPath, [path.join(here, 'check-i18n.mjs')], {
encoding: 'utf8',
});
// Warnings and the summary go straight through, so a missing-key list is visible in
// the build log where whoever is adding a language will actually read it.
if (result.stdout) process.stdout.write(result.stdout);
if (result.stderr) process.stderr.write(result.stderr);
if (result.status !== 0) {
throw new Error(
'check-i18n failed. Fix the keys listed above, or run `pnpm check:i18n` to see them again.',
);
}
}