deno-vm
Version:
A VM module that provides a secure runtime environment via Deno.
40 lines (39 loc) • 1.38 kB
TypeScript
/**
* The possible transferrable data types.
*/
export declare type Transferrable = ArrayBuffer | Uint8Array | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | MessagePortInterface;
/**
* Defines an interface for objects that are message ports.
*/
export interface MessagePortInterface extends MessageTarget {
start(): void;
close(): void;
}
/**
* Defines an interface for objects that are able to send and recieve message events.
*/
export interface MessageTarget {
postMessage(data: any, transferrable?: Transferrable[]): void;
onmessage(e: MessageEvent): void;
/**
* Adds the given listener for the "message" event.
* @param type The type of the event. (Always "message")
* @param listener The listener to add for the event.
*/
addEventListener(type: 'message', listener: OnMessageListener): void;
/**
* Removes the given listener for the "message" event.
* @param type The type of the event. (Always "message")
* @param listener The listener to add for the event.
*/
removeEventListener(type: 'message', listener: OnMessageListener): void;
}
export interface OnMessageListener {
(event: MessageEvent): void;
}
export interface OnExitListener {
(exitCode: number, signal: string): void;
}
export interface MessageEvent {
data: any;
}