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