joyent-portal/legacy/ui/docs/webpack/embed-markdown-loader/src/eval.js
Sérgio Ramos 8295bd6882 chore: initial lerna setup
this shall be a progressive process
2017-05-25 10:56:50 +01:00

30 lines
620 B
JavaScript

const Module = require('module');
const vm = require('vm');
const path = require('path');
module.exports = ({
source,
entrypoint
}) => {
const script = vm.createScript(source, entrypoint);
const dirname = path.basename(entrypoint);
const rootName = path.join(dirname, '@root');
const _module = new Module(rootName);
_module.filename = rootName;
_module.paths = Module._nodeModulePaths(dirname);
script.runInNewContext({
nmodule: _module,
nrequire: _module.require,
__filename: entrypoint,
__dirname: dirname,
process,
console,
Buffer
});
return _module.exports;
};