Urara-Blog/node_modules/.pnpm-store/v3/files/a6/956254fdd95e9717626808b9a2f9dd9aeb94ee13c7ca0b7038228b7567ab1dc216514f0eb943c92c5cc665f94378dca82a64a15d57af783713c9471392d7bf
2022-08-14 01:14:53 +08:00

34 lines
866 B
Text

'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;
};