Skip to content

Commit 9ac5280

Browse files
authored
Merge pull request #534 from nikeee/messagable
Introduce Messageable and Transferable for postMessage
2 parents 1916afc + 692474e commit 9ac5280

File tree

5 files changed

+92
-13
lines changed

5 files changed

+92
-13
lines changed

baselines/dom.generated.d.ts

+6-5
Original file line numberDiff line numberDiff line change
@@ -9914,7 +9914,7 @@ interface MessagePort extends EventTarget {
99149914
* transfer contains duplicate objects or port, or if message
99159915
* could not be cloned.
99169916
*/
9917-
postMessage(message: any, transfer?: any[]): void;
9917+
postMessage(message: any, transfer?: Transferable[]): void;
99189918
/**
99199919
* Begins dispatching messages received on the port.
99209920
*/
@@ -13943,7 +13943,7 @@ interface ServiceWorker extends EventTarget, AbstractWorker {
1394313943
onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
1394413944
readonly scriptURL: string;
1394513945
readonly state: ServiceWorkerState;
13946-
postMessage(message: any, transfer?: any[]): void;
13946+
postMessage(message: any, transfer?: Transferable[]): void;
1394713947
addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1394813948
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1394913949
removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
@@ -16376,7 +16376,7 @@ interface Window extends EventTarget, WindowTimers, WindowSessionStorage, Window
1637616376
moveTo(x: number, y: number): void;
1637716377
msWriteProfilerMark(profilerMarkName: string): void;
1637816378
open(url?: string, target?: string, features?: string, replace?: boolean): Window | null;
16379-
postMessage(message: any, targetOrigin: string, transfer?: any[]): void;
16379+
postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;
1638016380
print(): void;
1638116381
prompt(message?: string, _default?: string): string | null;
1638216382
/** @deprecated */
@@ -16489,7 +16489,7 @@ interface WorkerEventMap extends AbstractWorkerEventMap {
1648916489

1649016490
interface Worker extends EventTarget, AbstractWorker {
1649116491
onmessage: ((this: Worker, ev: MessageEvent) => any) | null;
16492-
postMessage(message: any, transfer?: any[]): void;
16492+
postMessage(message: any, transfer?: Transferable[]): void;
1649316493
terminate(): void;
1649416494
addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1649516495
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
@@ -17230,7 +17230,7 @@ declare function moveBy(x: number, y: number): void;
1723017230
declare function moveTo(x: number, y: number): void;
1723117231
declare function msWriteProfilerMark(profilerMarkName: string): void;
1723217232
declare function open(url?: string, target?: string, features?: string, replace?: boolean): Window | null;
17233-
declare function postMessage(message: any, targetOrigin: string, transfer?: any[]): void;
17233+
declare function postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;
1723417234
declare function print(): void;
1723517235
declare function prompt(message?: string, _default?: string): string | null;
1723617236
/** @deprecated */
@@ -17574,6 +17574,7 @@ type ConstrainDouble = number | ConstrainDoubleRange;
1757417574
type ConstrainLong = number | ConstrainLongRange;
1757517575
type CryptoOperationData = ArrayBufferView;
1757617576
type IDBKeyPath = string;
17577+
type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
1757717578
type RTCIceGatherCandidate = RTCIceCandidateDictionary | RTCIceCandidateComplete;
1757817579
type RTCTransport = RTCDtlsTransport | RTCSrtpSdesTransport;
1757917580
type WindowProxy = Window;

baselines/webworker.generated.d.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ interface Client {
468468
readonly id: string;
469469
readonly type: ClientTypes;
470470
readonly url: string;
471-
postMessage(message: any, transfer?: any[]): void;
471+
postMessage(message: any, transfer?: Transferable[]): void;
472472
}
473473

474474
declare var Client: {
@@ -829,7 +829,7 @@ interface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
829829
interface DedicatedWorkerGlobalScope extends WorkerGlobalScope {
830830
onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;
831831
close(): void;
832-
postMessage(message: any, transfer?: any[]): void;
832+
postMessage(message: any, transfer?: Transferable[]): void;
833833
addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
834834
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
835835
removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
@@ -1744,7 +1744,7 @@ interface MessagePort extends EventTarget {
17441744
* transfer contains duplicate objects or port, or if message
17451745
* could not be cloned.
17461746
*/
1747-
postMessage(message: any, transfer?: any[]): void;
1747+
postMessage(message: any, transfer?: Transferable[]): void;
17481748
/**
17491749
* Begins dispatching messages received on the port.
17501750
*/
@@ -2188,7 +2188,7 @@ interface ServiceWorker extends EventTarget, AbstractWorker {
21882188
onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
21892189
readonly scriptURL: string;
21902190
readonly state: ServiceWorkerState;
2191-
postMessage(message: any, transfer?: any[]): void;
2191+
postMessage(message: any, transfer?: Transferable[]): void;
21922192
addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
21932193
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
21942194
removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
@@ -2514,7 +2514,7 @@ interface WorkerEventMap extends AbstractWorkerEventMap {
25142514

25152515
interface Worker extends EventTarget, AbstractWorker {
25162516
onmessage: ((this: Worker, ev: MessageEvent) => any) | null;
2517-
postMessage(message: any, transfer?: any[]): void;
2517+
postMessage(message: any, transfer?: Transferable[]): void;
25182518
terminate(): void;
25192519
addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
25202520
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
@@ -2747,7 +2747,7 @@ interface PerformanceObserverCallback {
27472747

27482748
declare var onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;
27492749
declare function close(): void;
2750-
declare function postMessage(message: any, transfer?: any[]): void;
2750+
declare function postMessage(message: any, transfer?: Transferable[]): void;
27512751
/**
27522752
* Dispatches a synthetic event event to target and returns true
27532753
* if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
@@ -2805,6 +2805,7 @@ type BufferSource = ArrayBufferView | ArrayBuffer;
28052805
type DOMTimeStamp = number;
28062806
type FormDataEntryValue = File | string;
28072807
type IDBValidKey = number | string | Date | BufferSource | IDBArrayKey;
2808+
type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
28082809
type BinaryType = "blob" | "arraybuffer";
28092810
type ClientTypes = "window" | "worker" | "sharedworker" | "all";
28102811
type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique";

inputfiles/addedTypes.json

+4
Original file line numberDiff line numberDiff line change
@@ -2528,6 +2528,10 @@
25282528
"new-type": "IDBKeyPath",
25292529
"override-type": "string"
25302530
},
2531+
{
2532+
"new-type": "Transferable",
2533+
"override-type": "ArrayBuffer | MessagePort | ImageBitmap"
2534+
},
25312535
{
25322536
"new-type": "RTCIceGatherCandidate",
25332537
"override-type": "RTCIceCandidateDictionary | RTCIceCandidateComplete"

inputfiles/knownTypes.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,13 @@
7777
"RsaKeyGenParams",
7878
"RsaOaepParams",
7979
"RsaPssParams",
80+
"Transferable",
8081
"VideoFacingModeEnum"
8182
],
8283
"Worker": [
8384
"ClientTypes",
8485
"IDBArrayKey",
85-
"IDBValidKey"
86+
"IDBValidKey",
87+
"Transferable"
8688
]
8789
}

inputfiles/overridingTypes.json

+72-1
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,12 @@
270270
"override-signatures": [
271271
"alert(message?: any): void"
272272
]
273+
},
274+
"postMessage": {
275+
"name": "postMessage",
276+
"override-signatures": [
277+
"postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void"
278+
]
273279
}
274280
}
275281
},
@@ -1897,6 +1903,16 @@
18971903
"override-type": "ClientTypes"
18981904
}
18991905
}
1906+
},
1907+
"methods": {
1908+
"method": {
1909+
"postMessage": {
1910+
"name": "postMessage",
1911+
"override-signatures": [
1912+
"postMessage(message: any, transfer?: Transferable[]): void"
1913+
]
1914+
}
1915+
}
19001916
}
19011917
},
19021918
"RTCDataChannel": {
@@ -2237,7 +2253,10 @@
22372253
"methods": {
22382254
"method": {
22392255
"postMessage": {
2240-
"deprecated": 0
2256+
"deprecated": 0,
2257+
"override-signatures": [
2258+
"postMessage(message: any, transfer?: Transferable[]): void"
2259+
]
22412260
}
22422261
}
22432262
}
@@ -2318,6 +2337,58 @@
23182337
}
23192338
]
23202339
}
2340+
},
2341+
"BroadcastChannel": {
2342+
"name": "BroadcastChannel",
2343+
"methods": {
2344+
"method": {
2345+
"postMessage": {
2346+
"name": "postMessage",
2347+
"override-signatures": [
2348+
"postMessage(message: any): void"
2349+
]
2350+
}
2351+
}
2352+
}
2353+
},
2354+
"MessagePort": {
2355+
"name": "MessagePort",
2356+
"methods": {
2357+
"method": {
2358+
"postMessage": {
2359+
"name": "postMessage",
2360+
"override-signatures": [
2361+
"postMessage(message: any, transfer?: Transferable[]): void"
2362+
]
2363+
}
2364+
}
2365+
}
2366+
},
2367+
"ServiceWorker": {
2368+
"name": "ServiceWorker",
2369+
"methods": {
2370+
"method": {
2371+
"postMessage": {
2372+
"name": "postMessage",
2373+
"override-signatures": [
2374+
"postMessage(message: any, transfer?: Transferable[]): void"
2375+
]
2376+
}
2377+
}
2378+
}
2379+
},
2380+
"DedicatedWorkerGlobalScope": {
2381+
"name": "DedicatedWorkerGlobalScope",
2382+
"methods": {
2383+
"method": {
2384+
"postMessage": {
2385+
"name": "postMessage",
2386+
"override-signatures": [
2387+
"postMessage(message: any, transfer?: Transferable[]): void"
2388+
]
2389+
}
2390+
}
2391+
}
23212392
}
23222393
}
23232394
},

0 commit comments

Comments
 (0)