From 00099439188798f376f8580facc5ec762a43a4d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sat, 18 Sep 2021 17:49:05 +0200 Subject: [PATCH 1/3] typings: define types for worker and messaging bindings --- tsconfig.json | 2 ++ typings/internalBinding/messaging.d.ts | 34 ++++++++++++++++++++++++++ typings/internalBinding/worker.d.ts | 32 ++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 typings/internalBinding/messaging.d.ts create mode 100644 typings/internalBinding/worker.d.ts diff --git a/tsconfig.json b/tsconfig.json index df191a36f7cb13..d1d6469f494f97 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,9 +4,11 @@ "files": [ "./typings/internalBinding/fs.d.ts", "./typings/internalBinding/http_parser.d.ts", + "./typings/internalBinding/messaging.d.ts", "./typings/internalBinding/options.d.ts", "./typings/internalBinding/serdes.d.ts", "./typings/internalBinding/util.d.ts", + "./typings/internalBinding/worker.d.ts", "./typings/internalBinding.d.ts", "./typings/primordials.d.ts" ], diff --git a/typings/internalBinding/messaging.d.ts b/typings/internalBinding/messaging.d.ts new file mode 100644 index 00000000000000..10cb8f2fb5850a --- /dev/null +++ b/typings/internalBinding/messaging.d.ts @@ -0,0 +1,34 @@ + +declare namespace InternalMessagingBinding { + class MessageChannel { + port1: MessagePort; + port2: MessagePort; + constructor(); + } + + 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; +}; diff --git a/typings/internalBinding/worker.d.ts b/typings/internalBinding/worker.d.ts new file mode 100644 index 00000000000000..2fc7f9272d9f64 --- /dev/null +++ b/typings/internalBinding/worker.d.ts @@ -0,0 +1,32 @@ +declare namespace InternalWorkerBinding { + class Worker { + constructor( + url: string | URL | null, + env: object | null | undefined, + execArgv: string[] | null | undefined, + resourceLimits: Float64Array, + trackUnmanagedFds: boolean); + startThread(): void; + stopThread(): void; + ref(): void; + unref(): void; + getResourceLimits(): Float64Array; + takeHeapSnapshot(): object; + loopIdleTime(): number; + loopStartTime(): number; + } +} + +declare function InternalBinding(binding: 'worker'): { + Worker: typeof InternalWorkerBinding.Worker; + getEnvMessagePort(): InternalMessagingBinding.MessagePort; + threadId: number; + isMainThread: boolean; + ownsProcessState: boolean; + resourceLimits?: Float64Array; + kMaxYoungGenerationSizeMb: number; + kMaxOldGenerationSizeMb: number; + kCodeRangeSizeMb: number; + kStackSizeMb: number; + kTotalResourceLimitCount: number; +}; From 88f2f7f0bff359f6ddc3ed792172960ae33607f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sat, 18 Sep 2021 18:09:08 +0200 Subject: [PATCH 2/3] typings: define types for symbols binding --- typings/internalBinding.d.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/typings/internalBinding.d.ts b/typings/internalBinding.d.ts index 598322d581ceac..ffb6423e3e5d87 100644 --- a/typings/internalBinding.d.ts +++ b/typings/internalBinding.d.ts @@ -439,3 +439,6 @@ declare function InternalBinding(binding: 'config'): { bits: number, hasDtrace: boolean } +declare function InternalBinding(binding: 'symbols'): { + [name: string]: symbol; +} From 033857f7dd029f7c95f970320fd8675c986df9a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sat, 18 Sep 2021 18:39:06 +0200 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Mestery --- typings/internalBinding/messaging.d.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/typings/internalBinding/messaging.d.ts b/typings/internalBinding/messaging.d.ts index 10cb8f2fb5850a..ca5be84848408d 100644 --- a/typings/internalBinding/messaging.d.ts +++ b/typings/internalBinding/messaging.d.ts @@ -1,9 +1,7 @@ - declare namespace InternalMessagingBinding { class MessageChannel { port1: MessagePort; port2: MessagePort; - constructor(); } class MessagePort {