You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
66 lines
1.8 KiB
"use strict"; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.pitch = pitch; |
|
exports.warmup = warmup; |
|
|
|
var _loaderUtils = _interopRequireDefault(require("loader-utils")); |
|
|
|
var _workerPools = require("./workerPools"); |
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
|
|
function pitch() { |
|
const options = _loaderUtils.default.getOptions(this); |
|
|
|
const workerPool = (0, _workerPools.getPool)(options); |
|
|
|
if (!workerPool.isAbleToRun()) { |
|
return; |
|
} |
|
|
|
const callback = this.async(); |
|
workerPool.run({ |
|
loaders: this.loaders.slice(this.loaderIndex + 1).map(l => { |
|
return { |
|
loader: l.path, |
|
options: l.options, |
|
ident: l.ident |
|
}; |
|
}), |
|
resource: this.resourcePath + (this.resourceQuery || ''), |
|
sourceMap: this.sourceMap, |
|
emitError: this.emitError, |
|
emitWarning: this.emitWarning, |
|
loadModule: this.loadModule, |
|
resolve: this.resolve, |
|
getResolve: this.getResolve, |
|
target: this.target, |
|
minimize: this.minimize, |
|
resourceQuery: this.resourceQuery, |
|
optionsContext: this.rootContext || this.options.context, |
|
rootContext: this.rootContext |
|
}, (err, r) => { |
|
if (r) { |
|
r.fileDependencies.forEach(d => this.addDependency(d)); |
|
r.contextDependencies.forEach(d => this.addContextDependency(d)); |
|
r.missingDependencies.forEach(d => this.addMissingDependency(d)); |
|
r.buildDependencies.forEach(d => // Compatibility with webpack v4 |
|
this.addBuildDependency ? this.addBuildDependency(d) : this.addDependency(d)); |
|
} |
|
|
|
if (err) { |
|
callback(err); |
|
return; |
|
} |
|
|
|
callback(null, ...r.result); |
|
}); |
|
} |
|
|
|
function warmup(options, requires) { |
|
const workerPool = (0, _workerPools.getPool)(options); |
|
workerPool.warmup(requires); |
|
} // eslint-disable-line import/prefer-default-export
|