UNPKG

rewiremock

Version:

Advanced dependency mocking device.

67 lines (54 loc) 1.81 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.wipe = undefined; exports.safelyRemoveCache = safelyRemoveCache; var _mocks = require('./mocks'); var _plugins = require('./plugins'); var _relative = require('./plugins/relative'); var _module = require('./module'); var _module2 = _interopRequireDefault(_module); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // which one? var wipe = exports.wipe = typeof __webpack_require__ === 'function' ? require('wipe-webpack-cache') : require('wipe-node-cache').wipeCache; var primaryResolver = function primaryResolver(stubs, moduleName) { return stubs[moduleName]; }; var resolver = function resolver(stubs, moduleName) { // never wipe .node(native) module if (moduleName.indexOf('.node') > -1) { return false; } return 0 || (0, _plugins.shouldWipe)(stubs, moduleName) || primaryResolver(stubs, moduleName) || (0, _relative.relativeWipeCheck)(stubs, moduleName); }; var wipeCache = function wipeCache(primaryCache) { if (primaryCache) { // post clean wipe(primaryCache, primaryResolver); } else { // pre clean wipe((0, _mocks.getAllMocks)(), resolver); } }; function safelyRemoveCache(moduleName) { var m = _module2.default._cache[moduleName]; if (m) { // remove self from own parents if (m.parent && m.parent.children) { m.parent.children = m.parent.children.filter(function (x) { return x !== m; }); } // remove self from own children if (m.children) { m.children.forEach(function (child) { if (child.parent && child.parent === m) { child.parent = null; } }); } delete _module2.default._cache[moduleName]; } } exports.default = wipeCache;