ResolveLoader.js 783 B

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