UNPKG

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
'use strict'; 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