shift73k/assets_old/node_modules/svg-sprite-loader/examples/custom-runtime-generator-extract-mode/extracting-runtime-generator.js

19 lines
687 B
JavaScript

const { generateSpritePlaceholder, stringify } = require('../../lib/utils');
module.exports = function runtimeGenerator({ symbol, loaderContext }) {
// this will be replaced with real symbol url, e.g. sprite.svg#twitter-usage
const publicPath = loaderContext._compiler.options.output.publicPath;
const spritePlaceholder = generateSpritePlaceholder(symbol.request.file);
const viewBoxParts = symbol.viewBox.split(' ');
const width = parseInt(viewBoxParts[2], 10);
const height = parseInt(viewBoxParts[3], 10);
const data = {
width,
height,
viewBox: symbol.viewBox,
url: publicPath + spritePlaceholder
};
return `export default ${stringify(data)}`;
};