UNPKG

635 BJavaScriptView Raw
1// eslint-disable-next-line import/no-extraneous-dependencies
2const RuleSet = require('webpack/lib/RuleSet');
3
4const flattenAndExtractUse = rules => rules.reduce((pre, rule) => {
5 if ('rules' in rule || 'oneOf' in rule) {
6 return pre.concat(flattenAndExtractUse(rule.rules || rule.oneOf));
7 }
8
9 return pre.concat(rule.use || []);
10}, []);
11
12module.exports = (compiler) => {
13 const rawRules = compiler.options.module.rules;
14 const { rules } = new RuleSet(rawRules);
15 const rule = flattenAndExtractUse(rules)
16 .find((item) => {
17 return /svg-sprite-loader/.test(item.loader);
18 }) || {};
19
20 return rule.options || {};
21};