ModuleNotFoundError.js
  1  'use strict';
  2  
  3  Object.defineProperty(exports, '__esModule', {
  4    value: true
  5  });
  6  exports.default = void 0;
  7  
  8  function path() {
  9    const data = _interopRequireWildcard(require('path'));
 10  
 11    path = function () {
 12      return data;
 13    };
 14  
 15    return data;
 16  }
 17  
 18  function _slash() {
 19    const data = _interopRequireDefault(require('slash'));
 20  
 21    _slash = function () {
 22      return data;
 23    };
 24  
 25    return data;
 26  }
 27  
 28  function _interopRequireDefault(obj) {
 29    return obj && obj.__esModule ? obj : {default: obj};
 30  }
 31  
 32  function _getRequireWildcardCache() {
 33    if (typeof WeakMap !== 'function') return null;
 34    var cache = new WeakMap();
 35    _getRequireWildcardCache = function () {
 36      return cache;
 37    };
 38    return cache;
 39  }
 40  
 41  function _interopRequireWildcard(obj) {
 42    if (obj && obj.__esModule) {
 43      return obj;
 44    }
 45    if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
 46      return {default: obj};
 47    }
 48    var cache = _getRequireWildcardCache();
 49    if (cache && cache.has(obj)) {
 50      return cache.get(obj);
 51    }
 52    var newObj = {};
 53    var hasPropertyDescriptor =
 54      Object.defineProperty && Object.getOwnPropertyDescriptor;
 55    for (var key in obj) {
 56      if (Object.prototype.hasOwnProperty.call(obj, key)) {
 57        var desc = hasPropertyDescriptor
 58          ? Object.getOwnPropertyDescriptor(obj, key)
 59          : null;
 60        if (desc && (desc.get || desc.set)) {
 61          Object.defineProperty(newObj, key, desc);
 62        } else {
 63          newObj[key] = obj[key];
 64        }
 65      }
 66    }
 67    newObj.default = obj;
 68    if (cache) {
 69      cache.set(obj, newObj);
 70    }
 71    return newObj;
 72  }
 73  
 74  function _defineProperty(obj, key, value) {
 75    if (key in obj) {
 76      Object.defineProperty(obj, key, {
 77        value: value,
 78        enumerable: true,
 79        configurable: true,
 80        writable: true
 81      });
 82    } else {
 83      obj[key] = value;
 84    }
 85    return obj;
 86  }
 87  
 88  class ModuleNotFoundError extends Error {
 89    constructor(message, moduleName) {
 90      super(message);
 91  
 92      _defineProperty(this, 'code', 'MODULE_NOT_FOUND');
 93  
 94      _defineProperty(this, 'hint', void 0);
 95  
 96      _defineProperty(this, 'requireStack', void 0);
 97  
 98      _defineProperty(this, 'siblingWithSimilarExtensionFound', void 0);
 99  
100      _defineProperty(this, 'moduleName', void 0);
101  
102      _defineProperty(this, '_originalMessage', void 0);
103  
104      this._originalMessage = message;
105      this.moduleName = moduleName;
106    }
107  
108    buildMessage(rootDir) {
109      var _this$requireStack;
110  
111      if (!this._originalMessage) {
112        this._originalMessage = this.message || '';
113      }
114  
115      let message = this._originalMessage;
116  
117      if (
118        ((_this$requireStack = this.requireStack) === null ||
119        _this$requireStack === void 0
120          ? void 0
121          : _this$requireStack.length) &&
122        this.requireStack.length > 1
123      ) {
124        message += `
125  
126  Require stack:
127    ${this.requireStack
128      .map(p => p.replace(`${rootDir}${path().sep}`, ''))
129      .map(_slash().default)
130      .join('\n  ')}
131  `;
132      }
133  
134      if (this.hint) {
135        message += this.hint;
136      }
137  
138      this.message = message;
139    }
140  
141    static duckType(error) {
142      error.buildMessage = ModuleNotFoundError.prototype.buildMessage;
143      return error;
144    }
145  }
146  
147  exports.default = ModuleNotFoundError;