UNPKG

1.04 kBJavaScriptView Raw
1const processor = require('posthtml-svg-mode');
2const renameId = require('posthtml-rename-id');
3const normalizeViewBox = require('./transformations/normalize-viewbox');
4const rasterToSVG = require('./transformations/raster-to-svg');
5const prefixStyleSelectors = require('./transformations/prefix-style-selectors');
6const svgToSymbol = require('./transformations/svg-to-symbol');
7
8/**
9 * @param {Object} options
10 * @param {string} [options.id]
11 * @param {string} options.content
12 * @param {FileRequest} options.request
13 * @return {Promise<PostHTMLProcessingResult>}
14 */
15function symbolFactory(options) {
16 const { id } = options;
17 const plugins = [];
18
19 // convert raster image to svg
20 const content = Buffer.isBuffer(options.content)
21 ? rasterToSVG(options.content)
22 : options.content;
23
24 plugins.push(normalizeViewBox());
25 plugins.push(prefixStyleSelectors(`#${id}`));
26 plugins.push(renameId(`${id}_[id]`));
27 plugins.push(svgToSymbol({ id }));
28
29 return processor(plugins).process(content);
30}
31
32module.exports = symbolFactory;