UNPKG

729 BJavaScriptView Raw
1const Resolve = require('./Resolve');
2const ChainedSet = require('./ChainedSet');
3
4module.exports = class extends Resolve {
5 constructor(parent) {
6 super(parent);
7 this.moduleExtensions = new ChainedSet(this);
8 this.packageMains = new ChainedSet(this);
9 }
10
11 toConfig() {
12 return this.clean({
13 moduleExtensions: this.moduleExtensions.values(),
14 packageMains: this.packageMains.values(),
15 ...super.toConfig(),
16 });
17 }
18
19 merge(obj, omit = []) {
20 const omissions = ['moduleExtensions', 'packageMains'];
21
22 omissions.forEach(key => {
23 if (!omit.includes(key) && key in obj) {
24 this[key].merge(obj[key]);
25 }
26 });
27
28 return super.merge(obj, [...omit, ...omissions]);
29 }
30};