MCPcopy
hub / github.com/microsoft/reflect-metadata / load

Method load

test/vm.ts:13–42  ·  view source on GitHub ↗
(id: string, filename = id, code?: string)

Source from the content-addressed store, hash-verified

11 this.context = vm.createContext(context);
12 }
13 load(id: string, filename = id, code?: string): any {
14 let module = this.cache.get(id);
15 if (module) return module.exports;
16 module = {
17 id,
18 filename,
19 exports: {},
20 require: undefined,
21 loaded: false,
22 paths: undefined!,
23 children: undefined!,
24 parent: undefined!
25 };
26 this.cache.set(id, module);
27 if (mod.builtinModules.indexOf(id) >= 0) {
28 module.exports = require(id);
29 module.loaded = true;
30 }
31 else {
32 module.require = this.createRequire(filename);
33 if (code === undefined) {
34 code = fs.readFileSync(filename, { encoding: "utf8" });
35 }
36 code = `(function(module, exports, require, __filename, __dirname) {${code}\n})`;
37 const func = vm.runInContext(code, this.context, { filename });
38 func(module, module.exports, module.require, filename, path.dirname(filename));
39 module.loaded = true;
40 }
41 return module.exports;
42 }
43 createRequire(filename: string) {
44 const req = mod.createRequireFromPath(filename) as NodeRequire;
45 const require = ((id: string) => this.load(mod.builtinModules.indexOf(id) >= 0 ? id : req.resolve(id))) as NodeRequire;

Callers 2

createRequireMethod · 0.95
scriptFunction · 0.95

Calls 3

createRequireMethod · 0.95
getMethod · 0.65
setMethod · 0.65

Tested by

no test coverage detected