deno-vm
Version:
A VM module that provides a secure runtime environment via Deno.
55 lines (54 loc) • 1.86 kB
TypeScript
import { MessagePortInterface, Transferrable, MessageEvent, OnMessageListener } from './MessageTarget';
/**
* Defines a class that implements the Channel Messaging API for the worker.
*/
export declare class MessageChannel {
port1: MessagePort;
port2: MessagePort;
constructor(channel?: number | string);
}
/**
* Defines a class that allows messages sent from one port to be recieved at the other port.
*/
export declare class MessagePort implements MessagePortInterface {
/**
* Whether this message port has been transferred.
*/
private _transferred;
/**
* The function that should be called to send a message to the remote.
*/
private _sendMessage;
/**
* The ID of this message port's channel.
*/
private _channelId;
/**
* The "message" listeners.
*/
private _listeners;
/**
* The other message port.
*/
private _other;
get channelID(): string | number;
get transferred(): boolean;
constructor(channelID: number | string);
addEventListener(type: 'message', listener: OnMessageListener): void;
removeEventListener(type: 'message', listener: OnMessageListener): void;
postMessage(data: any, transferrable?: Transferrable[]): void;
start(): void;
close(): void;
/**
* Represents an event handler for the "message" event, that is a function to be called when a message is recieved from the worker.
*/
onmessage: (e: MessageEvent) => void;
transfer(sendMessage: (data: any, transfer: Transferrable[]) => void): (data: any) => void;
private _recieveMessage;
/**
* Links the two message ports.
* @param port1 The first port.
* @param port2 The second port.
*/
static link(port1: MessagePort, port2: MessagePort): void;
}