cinny/viteSvgLoader.ts

17 lines
519 B
TypeScript

import svgToMiniDataURI from "mini-svg-data-uri";
import type { Plugin } from "rollup";
import fs from "fs";
// TODO: remove this once https://github.com/vitejs/vite/pull/2909 gets merged
export const svgLoader = (): Plugin => ({
name: "vite-svg-patch-plugin",
transform: (code, id) => {
if (id.endsWith(".svg")) {
const extractedSvg = fs.readFileSync(id, "utf8");
const datauri = svgToMiniDataURI.toSrcset(extractedSvg);
return `export default "${datauri}"`;
}
return code;
},
});