rspack-chain
Version:
<p> <a href="https://npmjs.com/package/rspack-chain?activeTab=readme"> <img src="https://img.shields.io/npm/v/rspack-chain?style=flat-square&colorA=564341&colorB=EDED91" alt="npm version" /> </a> <a href="https://nodejs.org/en/about/previous-rele
33 lines (27 loc) • 821 B
JavaScript
const Resolve = require('./Resolve');
const ChainedSet = require('./ChainedSet');
module.exports = class extends Resolve {
constructor(parent) {
super(parent);
this.modules = new ChainedSet(this);
this.moduleExtensions = new ChainedSet(this);
this.packageMains = new ChainedSet(this);
}
toConfig() {
return this.clean({
modules: this.modules.values(),
moduleExtensions: this.moduleExtensions.values(),
packageMains: this.packageMains.values(),
...super.toConfig(),
});
}
merge(obj, omit = []) {
const omissions = ['modules', 'moduleExtensions', 'packageMains'];
omissions.forEach((key) => {
if (!omit.includes(key) && key in obj) {
this[key].merge(obj[key]);
}
});
return super.merge(obj, [...omit, ...omissions]);
}
};