Skip to content

Commit 85672cd

Browse files
mathe42saschanaz
andauthored
add automation for Transferable (#1378)
Co-authored-by: saschanaz <[email protected]>
1 parent 321faea commit 85672cd

File tree

9 files changed

+21
-13
lines changed

9 files changed

+21
-13
lines changed

baselines/audioworklet.generated.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1022,6 +1022,6 @@ type PerformanceEntryList = PerformanceEntry[];
10221022
type ReadableStreamController<T> = ReadableStreamDefaultController<T> | ReadableByteStreamController;
10231023
type ReadableStreamReadResult<T> = ReadableStreamReadValueResult<T> | ReadableStreamReadDoneResult<T>;
10241024
type ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBYOBReader;
1025-
type Transferable = ArrayBuffer | MessagePort;
1025+
type Transferable = MessagePort | ReadableStream | WritableStream | TransformStream | ArrayBuffer;
10261026
type ReadableStreamReaderMode = "byob";
10271027
type ReadableStreamType = "bytes";

baselines/dom.generated.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18146,7 +18146,7 @@ type RenderingContext = CanvasRenderingContext2D | ImageBitmapRenderingContext |
1814618146
type RequestInfo = Request | string;
1814718147
type TexImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
1814818148
type TimerHandler = string | Function;
18149-
type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
18149+
type Transferable = ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | ArrayBuffer;
1815018150
type Uint32List = Uint32Array | GLuint[];
1815118151
type UvmEntries = UvmEntry[];
1815218152
type UvmEntry = number[];

baselines/serviceworker.generated.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5623,7 +5623,7 @@ type ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBY
56235623
type RequestInfo = Request | string;
56245624
type TexImageSource = ImageBitmap | ImageData | OffscreenCanvas;
56255625
type TimerHandler = string | Function;
5626-
type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
5626+
type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | ArrayBuffer;
56275627
type Uint32List = Uint32Array | GLuint[];
56285628
type VibratePattern = number | number[];
56295629
type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;

baselines/sharedworker.generated.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5633,7 +5633,7 @@ type ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBY
56335633
type RequestInfo = Request | string;
56345634
type TexImageSource = ImageBitmap | ImageData | OffscreenCanvas;
56355635
type TimerHandler = string | Function;
5636-
type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
5636+
type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | ArrayBuffer;
56375637
type Uint32List = Uint32Array | GLuint[];
56385638
type VibratePattern = number | number[];
56395639
type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;

baselines/webworker.generated.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5927,7 +5927,7 @@ type ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBY
59275927
type RequestInfo = Request | string;
59285928
type TexImageSource = ImageBitmap | ImageData | OffscreenCanvas;
59295929
type TimerHandler = string | Function;
5930-
type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
5930+
type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | ArrayBuffer;
59315931
type Uint32List = Uint32Array | GLuint[];
59325932
type VibratePattern = number | number[];
59335933
type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;

inputfiles/addedTypes.jsonc

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,14 +1288,6 @@
12881288
"name": "MutationRecordType",
12891289
"overrideType": "\"attributes\" | \"characterData\" | \"childList\""
12901290
},
1291-
{
1292-
"name": "Transferable",
1293-
"type": [
1294-
{ "type": "ArrayBuffer" },
1295-
{ "type": "MessagePort" },
1296-
{ "type": "ImageBitmap" }
1297-
]
1298-
},
12991291
{
13001292
"name": "WindowProxy",
13011293
"type": "Window"

src/build.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,20 @@ async function emitDom() {
103103
await Promise.all([...(await getWebidls()).entries()].map(convertWidl))
104104
).filter((i) => i) as ReturnType<typeof convert>[];
105105

106+
const transferables = widlStandardTypes.flatMap((st) => {
107+
return Object.values(st.browser.interfaces?.interface ?? {}).filter(
108+
(i) => i.transferable
109+
);
110+
});
111+
112+
addedItems.typedefs.typedef.push({
113+
name: "Transferable",
114+
type: [
115+
...transferables.map((v) => ({ type: v.name })),
116+
{ type: "ArrayBuffer" },
117+
],
118+
});
119+
106120
async function convertWidl([shortName, idl]: string[]) {
107121
let commentsMap: Record<string, string>;
108122
try {

src/build/types.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ export interface Interface {
194194
};
195195
deprecated?: boolean | string;
196196
secureContext?: boolean;
197+
transferable?: boolean;
197198
}
198199

199200
export interface Iterator {

src/build/widlprocess.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ function convertInterfaceCommon(
162162
legacyWindowAlias: getExtAttr(i.extAttrs, "LegacyWindowAlias"),
163163
legacyNamespace: getExtAttr(i.extAttrs, "LegacyNamespace")[0],
164164
secureContext: hasExtAttr(i.extAttrs, "SecureContext"),
165+
transferable: hasExtAttr(i.extAttrs, "Transferable"),
165166
};
166167
if (!result.exposed && i.type === "interface" && !i.partial) {
167168
result.exposed = "Window";

0 commit comments

Comments
 (0)