mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-13 05:20:25 +00:00
Merge pull request #8770 from rhysd/vm
node.d.ts: "vm" module improvements
This commit is contained in:
+52
-1
@@ -16,6 +16,7 @@ import * as path from "path";
|
||||
import * as readline from "readline";
|
||||
import * as childProcess from "child_process";
|
||||
import * as os from "os";
|
||||
import * as vm from "vm";
|
||||
// Specifically test buffer module regression.
|
||||
import {Buffer as ImportedBuffer, SlowBuffer as ImportedSlowBuffer} from "buffer";
|
||||
|
||||
@@ -32,7 +33,8 @@ assert.notDeepStrictEqual({ x: { y: "3" } }, { x: { y: 3 } }, "uses === comparat
|
||||
assert.throws(() => { throw "a hammer at your face"; }, undefined, "DODGED IT");
|
||||
|
||||
assert.doesNotThrow(() => {
|
||||
if (false) { throw "a hammer at your face"; }
|
||||
const b = false;
|
||||
if (b) { throw "a hammer at your face"; }
|
||||
}, undefined, "What the...*crunch*");
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
@@ -679,3 +681,52 @@ namespace os_tests {
|
||||
result = os.networkInterfaces();
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
/// vm tests : https://nodejs.org/api/vm.html
|
||||
////////////////////////////////////////////////////
|
||||
|
||||
namespace vm_tests {
|
||||
{
|
||||
const sandbox = {
|
||||
animal: 'cat',
|
||||
count: 2
|
||||
};
|
||||
|
||||
const context = vm.createContext(sandbox);
|
||||
console.log(vm.isContext(context));
|
||||
const script = new vm.Script('count += 1; name = "kitty"');
|
||||
|
||||
for (let i = 0; i < 10; ++i) {
|
||||
script.runInContext(context);
|
||||
}
|
||||
|
||||
console.log(util.inspect(sandbox));
|
||||
|
||||
vm.runInNewContext('count += 1; name = "kitty"', sandbox);
|
||||
console.log(util.inspect(sandbox));
|
||||
}
|
||||
|
||||
{
|
||||
const sandboxes = [{}, {}, {}];
|
||||
|
||||
const script = new vm.Script('globalVar = "set"');
|
||||
|
||||
sandboxes.forEach((sandbox) => {
|
||||
script.runInNewContext(sandbox);
|
||||
script.runInThisContext();
|
||||
});
|
||||
|
||||
console.log(util.inspect(sandboxes));
|
||||
|
||||
var localVar = 'initial value';
|
||||
vm.runInThisContext('localVar = "vm";');
|
||||
|
||||
console.log(localVar);
|
||||
}
|
||||
|
||||
{
|
||||
const Debug = vm.runInDebugContext('Debug');
|
||||
Debug.scripts().forEach(function(script: any) { console.log(script.name); });
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+27
-8
@@ -932,15 +932,34 @@ declare module "readline" {
|
||||
|
||||
declare module "vm" {
|
||||
export interface Context { }
|
||||
export interface Script {
|
||||
runInThisContext(): void;
|
||||
runInNewContext(sandbox?: Context): void;
|
||||
export interface ScriptOptions {
|
||||
filename?: string;
|
||||
lineOffset?: number;
|
||||
columnOffset?: number;
|
||||
displayErrors?: boolean;
|
||||
timeout?: number;
|
||||
cachedData?: Buffer;
|
||||
produceCachedData?: boolean;
|
||||
}
|
||||
export function runInThisContext(code: string, filename?: string): void;
|
||||
export function runInNewContext(code: string, sandbox?: Context, filename?: string): void;
|
||||
export function runInContext(code: string, context: Context, filename?: string): void;
|
||||
export function createContext(initSandbox?: Context): Context;
|
||||
export function createScript(code: string, filename?: string): Script;
|
||||
export interface RunningScriptOptions {
|
||||
filename?: string;
|
||||
lineOffset?: number;
|
||||
columnOffset?: number;
|
||||
displayErrors?: boolean;
|
||||
timeout?: number;
|
||||
}
|
||||
export class Script {
|
||||
constructor(code: string, options?: ScriptOptions);
|
||||
runInContext(contextifiedSandbox: Context, options?: RunningScriptOptions): any;
|
||||
runInNewContext(sandbox?: Context, options?: RunningScriptOptions): any;
|
||||
runInThisContext(options?: RunningScriptOptions): any;
|
||||
}
|
||||
export function createContext(sandbox?: Context): Context;
|
||||
export function isContext(sandbox: Context): boolean;
|
||||
export function runInContext(code: string, contextifiedSandbox: Context, options?: RunningScriptOptions): any;
|
||||
export function runInDebugContext(code: string): any;
|
||||
export function runInNewContext(code: string, sandbox?: Context, options?: RunningScriptOptions): any;
|
||||
export function runInThisContext(code: string, options?: RunningScriptOptions): any;
|
||||
}
|
||||
|
||||
declare module "child_process" {
|
||||
|
||||
Reference in New Issue
Block a user