skypager-repl
Version:
an awesome repl
51 lines (37 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
exports.default = function (repl, options) {
repl.commands['reload'] = {
help: 'Clears the require cache',
// eslint-disable-next-line
action: function action() {
var reloadFilter = options.reloadFilter || function (key) {
return key.startsWith((0, _path.dirname)(process.cwd()));
};
var cacheEntries = (0, _keys2.default)(require.cache).filter(reloadFilter);
if ((0, _isFunction2.default)(options.willReload)) {
options.willReload(cacheEntries);
}
cacheEntries.forEach(function (moduleId) {
return delete require.cache[moduleId];
});
repl.commands.clear.action.call(repl);
if (options.clearAfterReload !== false) {
repl.commands.cls.action.call(repl);
}
if ((0, _isFunction2.default)(options.didReload)) {
options.didReload((0, _keys2.default)(require.cache).filter(reloadFilter), (0, _keys2.default)(require.cache), cacheEntries);
}
this.displayPrompt();
}
};
};
var _path = require('path');
var _isFunction = require('lodash/isFunction');
var _isFunction2 = _interopRequireDefault(_isFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//# sourceMappingURL=reloading.js.map