| const defaults = require('../config'); | 
| const normalizeRule = require('./normalize-rule'); | 
|   | 
| const spriteLoaderPath = require.resolve('../loader'); | 
|   | 
| /** | 
|  * @param {NormalModule} module | 
|  * @return {boolean} | 
|  */ | 
| function isModuleShouldBeExtracted(module) { | 
|   const { request, issuer, loaders } = module; | 
|   let rule = null; | 
|   | 
|   if (Array.isArray(loaders) && loaders.length > 0) { | 
|     // Find loader rule | 
|     rule = loaders.map(normalizeRule).find(data => data.loader === spriteLoaderPath); | 
|   } | 
|   | 
|   let issuerResource = null; | 
|   if (issuer) { | 
|     // webpack 1 compat | 
|     issuerResource = typeof issuer === 'string' ? issuer : issuer.resource; | 
|   } | 
|   | 
|   if (typeof request === 'string' && (!request.includes(spriteLoaderPath) || !rule)) { | 
|     return false; | 
|   } | 
|   | 
|   return !!( | 
|     (issuer && defaults.EXTRACTABLE_MODULE_ISSUER_PATTERN.test(issuerResource)) || | 
|     (rule && rule.options && rule.options.extract) | 
|   ); | 
| } | 
|   | 
| module.exports = isModuleShouldBeExtracted; |