UNPKG

@stephansama/astro-iconify-svgmap

Version:

Astro integration for generating iconify svgmaps for ssg sites

23 lines (22 loc) 925 B
//#region src/get.ts async function getIcon(pack, name) { const onServer = typeof document === "undefined"; const selectedPack = pack === "noto-emoji" ? "noto" : pack; if (!onServer) return `/${selectedPack}.svg#${name}`; const fs = await import("node:fs"); const { LOADED_ICONS_FILENAME } = await import("./const-BOIMW1to.mjs").then((n) => n.r); const current = fs.readFileSync(LOADED_ICONS_FILENAME, { encoding: "utf8", flag: "as+" }); const currentRepresentation = JSON.parse(current || "{}"); const newPack = currentRepresentation[selectedPack]?.includes(name) ? currentRepresentation[selectedPack] : [...new Set([name, ...currentRepresentation[selectedPack] || []])]; const newRepresentation = { ...currentRepresentation, [selectedPack]: newPack }; fs.writeFileSync(LOADED_ICONS_FILENAME, JSON.stringify(newRepresentation)); return `/${selectedPack}.svg#${name}`; } //#endregion export { getIcon };