@stephansama/astro-iconify-svgmap
Version:
Astro integration for generating iconify svgmaps for ssg sites
23 lines (22 loc) • 925 B
JavaScript
//#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 };