@mapcss/preset-svg
Version:
SVG as CSS for MapCSS
24 lines (23 loc) • 952 B
JavaScript
import { parseIconSet } from "../deps/esm.sh/@iconify/utils/lib/icon-set/parse.js";
import { defaults } from "../deps/esm.sh/@iconify/utils/lib/customisations.js";
import { iconToSVG } from "../deps/esm.sh/@iconify/utils/lib/svg/build.js";
export function iconifyJSON(icon) {
const identifier = {};
parseIconSet(icon, (name, iconData) => {
if (!iconData) {
throw Error(iconData);
}
const renderData = iconToSVG(iconData, defaults);
const svgAttributes = {
"xmlns": "http://www.w3.org/2000/svg",
"xmlns:xlink": "http://www.w3.org/1999/xlink",
...renderData.attributes,
};
const svgAttributesStr = Object.keys(svgAttributes)
.map((attr) => `${attr}="${svgAttributes[attr]}"`)
.join(" ");
const svg = `<svg ${svgAttributesStr}>${renderData.body}</svg>`;
identifier[name] = svg;
});
return identifier;
}