feat: using fetch to get buildin masks

This commit is contained in:
lloydzhou
2024-07-03 14:09:49 +08:00
parent 78e2b41e0c
commit 88c74ae18d
4 changed files with 241 additions and 9 deletions

23
app/masks/build.ts Normal file
View File

@@ -0,0 +1,23 @@
import fs from "fs";
import path from "path";
import { CN_MASKS } from "./cn";
import { TW_MASKS } from "./tw";
import { EN_MASKS } from "./en";
const BUILTIN_MASKS: BuiltinMask[] = {
cn: CN_MASKS,
tw: TW_MASKS,
en: EN_MASKS,
};
const dirname = path.dirname(__filename);
fs.writeFile(
dirname + "/../../public/masks.json",
JSON.stringify(BUILTIN_MASKS, null, 4),
function (error) {
if (error) {
console.error("[Build] failed to build masks", error);
}
},
);

View File

@@ -22,6 +22,20 @@ export const BUILTIN_MASK_STORE = {
},
};
export const BUILTIN_MASKS: BuiltinMask[] = [...CN_MASKS, ...TW_MASKS, ...EN_MASKS].map(
(m) => BUILTIN_MASK_STORE.add(m),
);
export const BUILTIN_MASKS: BuiltinMask[] = [];
if (typeof window != "undefined") {
// run in browser skip in next server
fetch("/masks.json")
.then((res) => res.json())
.catch((error) => {
console.error("[Fetch] failed to fetch masks", error);
return { cn: [], tw: [], en: [] };
})
.then((masks) => {
const { cn = [], tw = [], en = [] } = masks;
return [...cn, ...tw, ...en].map((m) => {
BUILTIN_MASKS.push(BUILTIN_MASK_STORE.add(m));
});
});
}