UNPKG

vite-plugin-svgo

Version:

Vite plugin to import and compress svg files with SVGO

40 lines (39 loc) 1.38 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = viteSvgPlugin; const svgo_1 = require("svgo"); const fs_1 = __importDefault(require("fs")); const VITE_PLUGIN_NAME = 'vite-plugin-svgo'; const fileRegex = /\.svg$/; function viteSvgPlugin(svgoOptimizeOptions = {}) { return { name: VITE_PLUGIN_NAME, enforce: 'pre', async load(id) { if (fileRegex.test(id)) { let svgCode; try { svgCode = await fs_1.default.promises.readFile(id, 'utf8'); } catch (exception) { console.warn(`${id} couldn't be loaded by vite-plugin-svgo: `, exception); return; } try { const optimizedSvg = (0, svgo_1.optimize)(svgCode, { path: id, ...svgoOptimizeOptions, }); return `export default \`${optimizedSvg.data}\`;`; } catch (exception) { console.error(`${id} errored during svg optimization: `, exception); } } }, }; } ;