first
This commit is contained in:
42
node_modules/webpack-chain/src/Use.js
generated
vendored
Normal file
42
node_modules/webpack-chain/src/Use.js
generated
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
const merge = require('deepmerge');
|
||||
const ChainedMap = require('./ChainedMap');
|
||||
const Orderable = require('./Orderable');
|
||||
|
||||
module.exports = Orderable(
|
||||
class extends ChainedMap {
|
||||
constructor(parent, name) {
|
||||
super(parent);
|
||||
this.name = name;
|
||||
this.extend(['loader', 'options']);
|
||||
}
|
||||
|
||||
tap(f) {
|
||||
this.options(f(this.get('options')));
|
||||
return this;
|
||||
}
|
||||
|
||||
merge(obj, omit = []) {
|
||||
if (!omit.includes('loader') && 'loader' in obj) {
|
||||
this.loader(obj.loader);
|
||||
}
|
||||
|
||||
if (!omit.includes('options') && 'options' in obj) {
|
||||
this.options(merge(this.store.get('options') || {}, obj.options));
|
||||
}
|
||||
|
||||
return super.merge(obj, [...omit, 'loader', 'options']);
|
||||
}
|
||||
|
||||
toConfig() {
|
||||
const config = this.clean(this.entries() || {});
|
||||
|
||||
Object.defineProperties(config, {
|
||||
__useName: { value: this.name },
|
||||
__ruleNames: { value: this.parent && this.parent.names },
|
||||
__ruleTypes: { value: this.parent && this.parent.ruleTypes },
|
||||
});
|
||||
|
||||
return config;
|
||||
}
|
||||
},
|
||||
);
|
Reference in New Issue
Block a user