const { renderer } = require('posthtml-svg-mode'); const defaultFactory = require('./sprite-factory'); class Sprite { constructor({ tree, filename }) { this.tree = tree; this.filename = filename; } /** * @param {Object} options * @param {Array} options.symbols * @param {string} options.filename Output sprite filename * @param {Function>} [options.factory] * @return {Promise} */ static create(options) { const { symbols, filename, factory = defaultFactory } = options; return factory({ symbols }).then(({ tree }) => new Sprite({ tree, filename })); } /** * @return {string} */ render() { return renderer(this.tree); } } module.exports = Sprite;