nutra-commonjs
Version:
The "nutra-commonjs" module is a commonjs module-loader for "N.U.T.R.A." unit test runner.
47 lines (35 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.moduleloader = undefined;
var _path = require('path');
var _fs = require('fs');
var _requireHacker = require('require-hacker');
var _requireHacker2 = _interopRequireDefault(_requireHacker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const moduleloader = (events, system, opts) => {
const cache = {};
events.onLoad = () => {
const hook = _requireHacker2.default.global_hook('*', (filename, module) => {
if (!filename.endsWith('.js')) return;
const tmp = system.tmpDirectory;
const name = module.filename;
if (name.indexOf(tmp) === 0) {
const pluginName = name.slice(tmp.length + 1);
const baseName = pluginName.slice(pluginName.indexOf('/')).replace(/\|/g, '/').slice(0, -2);
module.filename = (0, _path.join)(system.basePath, baseName);
}
const resolvedName = _requireHacker2.default.resolve(filename, module);
if (cache[resolvedName]) {
return cache[resolvedName];
}
return cache[resolvedName] = system.callbacks.onFileSourceLoaded((0, _fs.readFileSync)(resolvedName, 'utf8'), resolvedName);
});
system.files.forEach(file => require(file));
hook.unmount();
};
events.onExit = () => {};
};
exports.moduleloader = moduleloader;
//# sourceMappingURL=nutra-commonjs.js.map