ResolveLoader.js 731 B

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