deno-vm
Version:
A VM module that provides a secure runtime environment via Deno.
55 lines (47 loc) • 1.38 kB
text/typescript
/**
* The possible transferrable data types.
*/
export 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;
}