node/typings/internalBinding/messaging.d.ts
Michaël Zasso 0eb3420feb
typings: define types for worker and messaging bindings
PR-URL: https://github.com/nodejs/node/pull/40143
Reviewed-By: James M Snell <jasnell@gmail.com>
2021-09-26 10:42:07 +02:00

32 lines
1.2 KiB
TypeScript

declare namespace InternalMessagingBinding {
class MessageChannel {
port1: MessagePort;
port2: MessagePort;
}
class MessagePort {
private constructor();
postMessage(message: any, transfer?: any[] | null): void;
start(): void;
close(): void;
ref(): void;
unref(): void;
}
class JSTransferable {}
}
declare function InternalBinding(binding: 'messaging'): {
DOMException: typeof import('internal/per_context/domexception').DOMException;
MessageChannel: typeof InternalMessagingBinding.MessageChannel;
MessagePort: typeof InternalMessagingBinding.MessagePort;
JSTransferable: typeof InternalMessagingBinding.JSTransferable;
stopMessagePort(port: typeof InternalMessagingBinding.MessagePort): void;
checkMessagePort(port: unknown): boolean;
drainMessagePort(port: typeof InternalMessagingBinding.MessagePort): void;
receiveMessageOnPort(port: typeof InternalMessagingBinding.MessagePort): any;
moveMessagePortToContext(port: typeof InternalMessagingBinding.MessagePort, context: any): typeof InternalMessagingBinding.MessagePort;
setDeserializerCreateObjectFunction(func: (deserializeInfo: string) => any): void;
broadcastChannel(name: string): typeof InternalMessagingBinding.MessagePort;
};