import * as fs from "fs" import Script from "./Script" function genImages(dryrun = false) { console.log("Generating images") const dir = fs.readdirSync("./assets/svg") for (const path of dir) { if (path.endsWith("license_info.json")) { continue } if (path.endsWith(".license")) { continue } if (!path.endsWith(".svg")) { throw "Non-svg file detected in the svg files: " + path } let svg: string = fs .readFileSync("./assets/svg/" + path, "utf-8") .replace(/<\?xml.*?>/, "") .replace(/]*>/, "") .replace(/fill: ?none;/g, "fill: none !important;") // This is such a brittle hack... .replace(/\n/g, " ") .replace(/\r/g, "") .replace(/\\/g, "\\") .replace(/"/g, "\\\"") .replaceAll(" ", " ") let hasNonAsciiChars = Array.from(svg) .filter((char) => char.charCodeAt(0) > 127) .map((char) => char.charCodeAt(0)) .join(", ") if (hasNonAsciiChars.length > 0) { throw "The svg '" + path + "' has non-ascii characters: " + hasNonAsciiChars } const name = path.substring(0, path.length - 4).replace(/[ -]/g, "_") const nameUC = name.toUpperCase().at(0) + name.substring(1) const svelteCode = "\n" + svg .replace( " { genImages() } } new GenerateIncludedImages().run()