UNPKG

948 BJavaScriptView Raw
1const defaults = require('../config');
2const normalizeRule = require('./normalize-rule');
3
4const spriteLoaderPath = require.resolve('../loader');
5
6/**
7 * @param {NormalModule} module
8 * @return {boolean}
9 */
10function isModuleShouldBeExtracted(module) {
11 const { request, issuer, loaders } = module;
12 let rule = null;
13
14 if (Array.isArray(loaders) && loaders.length > 0) {
15 // Find loader rule
16 rule = loaders.map(normalizeRule).find(data => data.loader === spriteLoaderPath);
17 }
18
19 let issuerResource = null;
20 if (issuer) {
21 // webpack 1 compat
22 issuerResource = typeof issuer === 'string' ? issuer : issuer.resource;
23 }
24
25 if (typeof request === 'string' && (!request.includes(spriteLoaderPath) || !rule)) {
26 return false;
27 }
28
29 return !!(
30 (issuer && defaults.EXTRACTABLE_MODULE_ISSUER_PATTERN.test(issuerResource)) ||
31 (rule && rule.options && rule.options.extract)
32 );
33}
34
35module.exports = isModuleShouldBeExtracted;