-
-
Notifications
You must be signed in to change notification settings - Fork 70
/
Copy pathindex.js
83 lines (74 loc) · 2.29 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import { getPool } from './workerPools';
function pitch() {
const options = this.getOptions();
const workerPool = 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,
};
}),
_compiler: {
fsStartTime: this._compiler.fsStartTime,
options: { plugins: [] },
},
_compilation: {
outputOptions: {
hashSalt: this._compilation.outputOptions.hashSalt,
hashFunction: this._compilation.outputOptions.hashFunction,
hashDigest: this._compilation.outputOptions.hashDigest,
hashDigestLength: this._compilation.outputOptions.hashDigestLength,
},
options: {
devtool:
this._compilation &&
this._compilation.options &&
this._compilation.options.devtool,
},
},
resourcePath: this.resourcePath,
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 = getPool(options);
workerPool.warmup(requires);
}
export { pitch, warmup }; // eslint-disable-line import/prefer-default-export