in packages/extract-svg-sprite-webpack-plugin/lib/utils/sprite-compiler.js [43:83]
groupBySpriteFileName(compilation) {
const sprites = [];
Array.from(this.symbols.keys()).forEach(path => {
const symbol = this.symbols.get(path);
const { config, module } = symbol;
const compilationContext = helpers.getRootCompilation(compilation)
.compiler.context;
let filename;
if (config.filename && config.emit) {
filename = typeof config.filename === 'function'
? config.filename(module)
: config.filename;
if (filename.includes('[issuer-path]')) {
filename = filename.replace(
'[issuer-path]',
module.issuer.resource
.replace(compilationContext, '')
.replace(Path.extname(module.issuer.resource), '')
.replace(/^\//, '')
);
}
}
let sprite = sprites.find(s => s.filename === filename);
if (!sprite) {
sprite = { symbols: [symbol] };
if (filename) {
sprite.filename = filename;
}
sprites.push(sprite);
} else {
sprite.symbols.push(symbol);
}
});
return sprites;
}