endpild-laman/lang_compress.js
AmaneSerenetia 1104b76e46 first commit
2024-01-22 20:52:38 +09:00

29 lines
983 B
JavaScript

const { readdir, readFile, writeFile, access } = require("node:fs/promises");
const { constants: { R_OK, W_OK } } = require("node:fs");
const LANG_SRC = "./lang";
const LANG_DEST = "./public/assets/lang";
const booleanPromise = (promise) => promise.then(() => true).catch(() => false);
async function compress() {
if (!await booleanPromise(access(LANG_SRC, R_OK))) {
console.error(`Couldn't access ${LANG_SRC}: Target not readable`);
}
if (!await booleanPromise(access(LANG_DEST, W_OK))) {
console.error(`Couldn't access ${LANG_DEST}: Target not writable`);
return;
}
for (const file of await readdir(LANG_SRC)) {
const content = await readFile(`${LANG_SRC}/${file}`, "utf8");
try {
const out = JSON.stringify(JSON.parse(content));
await writeFile(`${LANG_DEST}/${file}`, out);
} catch {
console.error(`Couldn't parse ${file}. Skipping.`);
}
}
}
void compress();