1 | const defaults = require('../config');
|
2 | const normalizeRule = require('./normalize-rule');
|
3 |
|
4 | const spriteLoaderPath = require.resolve('../loader');
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | function isModuleShouldBeExtracted(module) {
|
11 | const { request, issuer, loaders } = module;
|
12 | let rule = null;
|
13 |
|
14 | if (Array.isArray(loaders) && loaders.length > 0) {
|
15 |
|
16 | rule = loaders.map(normalizeRule).find(data => data.loader === spriteLoaderPath);
|
17 | }
|
18 |
|
19 | let issuerResource = null;
|
20 | if (issuer) {
|
21 |
|
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 |
|
35 | module.exports = isModuleShouldBeExtracted;
|