@stephansama/astro-iconify-svgmap
Version:
Astro integration for generating iconify svgmaps for ssg sites
1 lines • 2.41 kB
Source Map (JSON)
{"version":3,"sources":["../src/const.ts","../src/get.ts"],"sourcesContent":["import type { Options } from \"./type\";\n\nconst FILE_PREFIX = \"node_modules/\";\n\nexport const CONFIG_FILENAME = FILE_PREFIX + \"iconifysvgmap.config.json\";\n\nexport const LOADED_ICONS_FILENAME = FILE_PREFIX + \"iconifysvgmap.json\";\n\nexport const defaultConfig: Options = {\n\toutDir: \"public\",\n};\n","export async function getIcon(pack: string, name: string) {\n\tconst onServer = typeof document === \"undefined\";\n\tconst selectedPack = pack === \"noto-emoji\" ? \"noto\" : pack;\n\n\tif (!onServer) return `/${selectedPack}.svg#${name}`;\n\n\tconst fs = await import(\"node:fs\");\n\n\tconst { LOADED_ICONS_FILENAME } = await import(\"./const.ts\");\n\n\tconst current = fs.readFileSync(LOADED_ICONS_FILENAME, {\n\t\tencoding: \"utf-8\",\n\t\tflag: \"as+\",\n\t});\n\n\tconst currentRepresentation = JSON.parse(current || \"{}\");\n\tconst newPack = currentRepresentation[selectedPack]?.includes(name)\n\t\t? currentRepresentation[selectedPack]\n\t\t: [\n\t\t\t\t...new Set([\n\t\t\t\t\tname,\n\t\t\t\t\t...(currentRepresentation[selectedPack]\n\t\t\t\t\t\t? currentRepresentation[selectedPack]\n\t\t\t\t\t\t: []),\n\t\t\t\t]),\n\t\t\t];\n\n\tconst newRepresentation = {\n\t\t...currentRepresentation,\n\t\t[selectedPack]: newPack,\n\t};\n\n\tfs.writeFileSync(LOADED_ICONS_FILENAME, JSON.stringify(newRepresentation));\n\treturn `/${selectedPack}.svg#${name}`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAEM,aAEO,iBAEA,uBAEA;AARb;AAAA;AAAA;AAEA,IAAM,cAAc;AAEb,IAAM,kBAAkB,cAAc;AAEtC,IAAM,wBAAwB,cAAc;AAE5C,IAAM,gBAAyB;AAAA,MACrC,QAAQ;AAAA,IACT;AAAA;AAAA;;;ACVA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAsB,QAAQ,MAAc,MAAc;AACzD,QAAM,WAAW,OAAO,aAAa;AACrC,QAAM,eAAe,SAAS,eAAe,SAAS;AAEtD,MAAI,CAAC,SAAU,QAAO,IAAI,YAAY,QAAQ,IAAI;AAElD,QAAM,KAAK,MAAM,OAAO,IAAS;AAEjC,QAAM,EAAE,uBAAAA,uBAAsB,IAAI,MAAM;AAExC,QAAM,UAAU,GAAG,aAAaA,wBAAuB;AAAA,IACtD,UAAU;AAAA,IACV,MAAM;AAAA,EACP,CAAC;AAED,QAAM,wBAAwB,KAAK,MAAM,WAAW,IAAI;AACxD,QAAM,UAAU,sBAAsB,YAAY,GAAG,SAAS,IAAI,IAC/D,sBAAsB,YAAY,IAClC;AAAA,IACA,GAAG,oBAAI,IAAI;AAAA,MACV;AAAA,MACA,GAAI,sBAAsB,YAAY,IACnC,sBAAsB,YAAY,IAClC,CAAC;AAAA,IACL,CAAC;AAAA,EACF;AAEF,QAAM,oBAAoB;AAAA,IACzB,GAAG;AAAA,IACH,CAAC,YAAY,GAAG;AAAA,EACjB;AAEA,KAAG,cAAcA,wBAAuB,KAAK,UAAU,iBAAiB,CAAC;AACzE,SAAO,IAAI,YAAY,QAAQ,IAAI;AACpC;","names":["LOADED_ICONS_FILENAME"]}