Spaces:
Paused
Paused
| ; | |
| var Module = require('module'); | |
| var path = require('path'); | |
| module.exports = function requireFromString(code, filename, opts) { | |
| if (typeof filename === 'object') { | |
| opts = filename; | |
| filename = undefined; | |
| } | |
| opts = opts || {}; | |
| filename = filename || ''; | |
| opts.appendPaths = opts.appendPaths || []; | |
| opts.prependPaths = opts.prependPaths || []; | |
| if (typeof code !== 'string') { | |
| throw new Error('code must be a string, not ' + typeof code); | |
| } | |
| var paths = Module._nodeModulePaths(path.dirname(filename)); | |
| var parent = module.parent; | |
| var m = new Module(filename, parent); | |
| m.filename = filename; | |
| m.paths = [].concat(opts.prependPaths).concat(paths).concat(opts.appendPaths); | |
| m._compile(code, filename); | |
| var exports = m.exports; | |
| parent && parent.children && parent.children.splice(parent.children.indexOf(m), 1); | |
| return exports; | |
| }; | |