UNPKG

require-clean

Version:

Cleanly `require` a module from disk, having flushed the module's cache, including all of its submodules. Used like normal `require`

69 lines (64 loc) 2.06 kB
/** * require-clean http://github.com/anodynos/require-clean/ * * Cleanly `require` a module from disk, having flushed the module's cache, including all of its submodules. Used like normal `require` * Version 0.1.3 - Compiled on 2015-10-05 01:08:44 * Repository git://github.com/anodynos/require-clean * Copyright(c) 2015 Agelos Pikoulas <agelos.pikoulas@gmail.com> * License MIT */ // Generated by uRequire v0.7.0-beta.22 target: 'lib' template: 'nodejs' var _ = require('lodash'); var VERSION = '0.1.3'; // injected by urequire-rc-inject-version var callerPath, deleteMod, path, requireClean, resolveFrom, searchCache, _; _ = require("lodash"); path = require("path"); resolveFrom = require("resolve-from"); callerPath = require("caller-path"); deleteMod = function (mod) { return delete require.cache[mod.id]; }; searchCache = function (name, calledFrom, deep, callback) { var mod, run; mod = resolveFrom(path.dirname(calledFrom), name); if (mod && (mod = require.cache[mod]) !== void 0) { return (run = function (mod) { if (deep) { mod.children.forEach(function (child) { return run(child); }); } return callback(mod); })(mod); } }; requireClean = function (name, deep) { var cp; if (deep == null) { deep = true; } if (!_.isString(name)) { throw new TypeError("requireClean expects a moduleId String"); } cp = callerPath(); searchCache(name, cp, deep, deleteMod); return require(resolveFrom(path.dirname(cp), name)); }; requireClean.clean = function (name, deep) { if (deep == null) { deep = true; } if (_.isUndefined(name)) { return _.each(require.cache, function (v, key) { return delete require.cache[key]; }); } else { if (!_.isString(name)) { throw new TypeError("requireClean.clean Expects a moduleId String"); } return searchCache(name, callerPath(), deep, deleteMod); } }; requireClean.VERSION = typeof VERSION !== "undefined" && VERSION !== null ? VERSION : "{NO_VERSION}"; module.exports = requireClean; ;