UNPKG

783 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 Object.assign(
14 {
15 moduleExtensions: this.moduleExtensions.values(),
16 packageMains: this.packageMains.values(),
17 },
18 super.toConfig()
19 )
20 );
21 }
22
23 merge(obj, omit = []) {
24 const omissions = ['moduleExtensions', 'packageMains'];
25
26 omissions.forEach(key => {
27 if (!omit.includes(key) && key in obj) {
28 this[key].merge(obj[key]);
29 }
30 });
31
32 return super.merge(obj, [...omit, ...omissions]);
33 }
34};