Skip to content

Commit f0d597c

Browse files
authored
Merge pull request #541 from MattiasBuelens/streams
Add Streams
2 parents ae27ec9 + af53881 commit f0d597c

File tree

8 files changed

+1047
-61
lines changed

8 files changed

+1047
-61
lines changed

baselines/dom.generated.d.ts

Lines changed: 156 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -890,6 +890,12 @@ interface PeriodicWaveOptions extends PeriodicWaveConstraints {
890890
real?: number[] | Float32Array;
891891
}
892892

893+
interface PipeOptions {
894+
preventAbort?: boolean;
895+
preventCancel?: boolean;
896+
preventClose?: boolean;
897+
}
898+
893899
interface PointerEventInit extends MouseEventInit {
894900
height?: number;
895901
isPrimary?: boolean;
@@ -942,9 +948,9 @@ interface PushSubscriptionOptionsInit {
942948
userVisibleOnly?: boolean;
943949
}
944950

945-
interface QueuingStrategy {
951+
interface QueuingStrategy<T = any> {
946952
highWaterMark?: number;
947-
size?: WritableStreamChunkCallback;
953+
size?: QueuingStrategySizeCallback<T>;
948954
}
949955

950956
interface RTCAnswerOptions extends RTCOfferAnswerOptions {
@@ -1500,6 +1506,14 @@ interface TrackEventInit extends EventInit {
15001506
track?: VideoTrack | AudioTrack | TextTrack | null;
15011507
}
15021508

1509+
interface Transformer<I = any, O = any> {
1510+
flush?: TransformStreamDefaultControllerCallback<O>;
1511+
readableType?: undefined;
1512+
start?: TransformStreamDefaultControllerCallback<O>;
1513+
transform?: TransformStreamDefaultControllerTransformCallback<I, O>;
1514+
writableType?: undefined;
1515+
}
1516+
15031517
interface TransitionEventInit extends EventInit {
15041518
elapsedTime?: number;
15051519
propertyName?: string;
@@ -1511,11 +1525,27 @@ interface UIEventInit extends EventInit {
15111525
view?: Window | null;
15121526
}
15131527

1514-
interface UnderlyingSink {
1528+
interface UnderlyingByteSource {
1529+
autoAllocateChunkSize?: number;
1530+
cancel?: ReadableStreamErrorCallback;
1531+
pull?: ReadableByteStreamControllerCallback;
1532+
start?: ReadableByteStreamControllerCallback;
1533+
type: "bytes";
1534+
}
1535+
1536+
interface UnderlyingSink<W = any> {
15151537
abort?: WritableStreamErrorCallback;
1516-
close?: WritableStreamDefaultControllerCallback;
1517-
start: WritableStreamDefaultControllerCallback;
1518-
write?: WritableStreamChunkCallback;
1538+
close?: WritableStreamDefaultControllerCloseCallback;
1539+
start?: WritableStreamDefaultControllerStartCallback;
1540+
type?: undefined;
1541+
write?: WritableStreamDefaultControllerWriteCallback<W>;
1542+
}
1543+
1544+
interface UnderlyingSource<R = any> {
1545+
cancel?: ReadableStreamErrorCallback;
1546+
pull?: ReadableStreamDefaultControllerCallback<R>;
1547+
start?: ReadableStreamDefaultControllerCallback<R>;
1548+
type?: undefined;
15191549
}
15201550

15211551
interface VRDisplayEventInit extends EventInit {
@@ -2172,7 +2202,7 @@ declare var Blob: {
21722202
};
21732203

21742204
interface Body {
2175-
readonly body: ReadableStream | null;
2205+
readonly body: ReadableStream<Uint8Array> | null;
21762206
readonly bodyUsed: boolean;
21772207
arrayBuffer(): Promise<ArrayBuffer>;
21782208
blob(): Promise<Blob>;
@@ -2217,14 +2247,14 @@ interface BroadcastChannelEventMap {
22172247
messageerror: MessageEvent;
22182248
}
22192249

2220-
interface ByteLengthQueuingStrategy {
2250+
interface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {
22212251
highWaterMark: number;
2222-
size(chunk?: any): number;
2252+
size(chunk: ArrayBufferView): number;
22232253
}
22242254

22252255
declare var ByteLengthQueuingStrategy: {
22262256
prototype: ByteLengthQueuingStrategy;
2227-
new(strategy: QueuingStrategy): ByteLengthQueuingStrategy;
2257+
new(options: { highWaterMark: number }): ByteLengthQueuingStrategy;
22282258
};
22292259

22302260
interface CDATASection extends Text {
@@ -3308,14 +3338,14 @@ interface Coordinates {
33083338
readonly speed: number | null;
33093339
}
33103340

3311-
interface CountQueuingStrategy {
3341+
interface CountQueuingStrategy extends QueuingStrategy {
33123342
highWaterMark: number;
3313-
size(): number;
3343+
size(chunk: any): 1;
33143344
}
33153345

33163346
declare var CountQueuingStrategy: {
33173347
prototype: CountQueuingStrategy;
3318-
new(strategy: QueuingStrategy): CountQueuingStrategy;
3348+
new(options: { highWaterMark: number }): CountQueuingStrategy;
33193349
};
33203350

33213351
interface Crypto {
@@ -11834,20 +11864,70 @@ declare var Range: {
1183411864
readonly START_TO_START: number;
1183511865
};
1183611866

11837-
interface ReadableStream {
11867+
interface ReadableByteStreamController {
11868+
readonly byobRequest: ReadableStreamBYOBRequest | undefined;
11869+
readonly desiredSize: number | null;
11870+
close(): void;
11871+
enqueue(chunk: ArrayBufferView): void;
11872+
error(error?: any): void;
11873+
}
11874+
11875+
interface ReadableStream<R = any> {
1183811876
readonly locked: boolean;
11839-
cancel(): Promise<void>;
11840-
getReader(): ReadableStreamReader;
11877+
cancel(reason?: any): Promise<void>;
11878+
getReader(options: { mode: "byob" }): ReadableStreamBYOBReader;
11879+
getReader(): ReadableStreamDefaultReader<R>;
11880+
pipeThrough<T>({ writable, readable }: { writable: WritableStream<R>, readable: ReadableStream<T> }, options?: PipeOptions): ReadableStream<T>;
11881+
pipeTo(dest: WritableStream<R>, options?: PipeOptions): Promise<void>;
11882+
tee(): [ReadableStream<R>, ReadableStream<R>];
1184111883
}
1184211884

1184311885
declare var ReadableStream: {
1184411886
prototype: ReadableStream;
11845-
new(): ReadableStream;
11887+
new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number, size?: undefined }): ReadableStream<Uint8Array>;
11888+
new<R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
11889+
};
11890+
11891+
interface ReadableStreamBYOBReader {
11892+
readonly closed: Promise<void>;
11893+
cancel(reason?: any): Promise<void>;
11894+
read<T extends ArrayBufferView>(view: T): Promise<ReadableStreamReadResult<T>>;
11895+
releaseLock(): void;
11896+
}
11897+
11898+
declare var ReadableStreamBYOBReader: {
11899+
prototype: ReadableStreamBYOBReader;
11900+
new(stream: ReadableStream<Uint8Array>): ReadableStreamBYOBReader;
1184611901
};
1184711902

11848-
interface ReadableStreamReader {
11903+
interface ReadableStreamBYOBRequest {
11904+
readonly view: ArrayBufferView;
11905+
respond(bytesWritten: number): void;
11906+
respondWithNewView(view: ArrayBufferView): void;
11907+
}
11908+
11909+
interface ReadableStreamDefaultController<R = any> {
11910+
readonly desiredSize: number | null;
11911+
close(): void;
11912+
enqueue(chunk: R): void;
11913+
error(error?: any): void;
11914+
}
11915+
11916+
interface ReadableStreamDefaultReader<R = any> {
11917+
readonly closed: Promise<void>;
11918+
cancel(reason?: any): Promise<void>;
11919+
read(): Promise<ReadableStreamReadResult<R>>;
11920+
releaseLock(): void;
11921+
}
11922+
11923+
interface ReadableStreamReadResult<T> {
11924+
done: boolean;
11925+
value: T;
11926+
}
11927+
11928+
interface ReadableStreamReader<R = any> {
1184911929
cancel(): Promise<void>;
11850-
read(): Promise<any>;
11930+
read(): Promise<ReadableStreamReadResult<R>>;
1185111931
releaseLock(): void;
1185211932
}
1185311933

@@ -14904,6 +14984,23 @@ declare var TrackEvent: {
1490414984
new(typeArg: string, eventInitDict?: TrackEventInit): TrackEvent;
1490514985
};
1490614986

14987+
interface TransformStream<I = any, O = any> {
14988+
readonly readable: ReadableStream<O>;
14989+
readonly writable: WritableStream<I>;
14990+
}
14991+
14992+
declare var TransformStream: {
14993+
prototype: TransformStream;
14994+
new<I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;
14995+
};
14996+
14997+
interface TransformStreamDefaultController<O = any> {
14998+
readonly desiredSize: number | null;
14999+
enqueue(chunk: O): void;
15000+
error(reason?: any): void;
15001+
terminate(): void;
15002+
}
15003+
1490715004
interface TransitionEvent extends Event {
1490815005
readonly elapsedTime: number;
1490915006
readonly propertyName: string;
@@ -16637,41 +16734,31 @@ declare var Worklet: {
1663716734
new(): Worklet;
1663816735
};
1663916736

16640-
interface WritableStream {
16737+
interface WritableStream<W = any> {
1664116738
readonly locked: boolean;
1664216739
abort(reason?: any): Promise<void>;
16643-
getWriter(): WritableStreamDefaultWriter;
16740+
getWriter(): WritableStreamDefaultWriter<W>;
1664416741
}
1664516742

1664616743
declare var WritableStream: {
1664716744
prototype: WritableStream;
16648-
new(underlyingSink?: UnderlyingSink, strategy?: QueuingStrategy): WritableStream;
16745+
new<W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
1664916746
};
1665016747

1665116748
interface WritableStreamDefaultController {
1665216749
error(error?: any): void;
1665316750
}
1665416751

16655-
declare var WritableStreamDefaultController: {
16656-
prototype: WritableStreamDefaultController;
16657-
new(): WritableStreamDefaultController;
16658-
};
16659-
16660-
interface WritableStreamDefaultWriter {
16752+
interface WritableStreamDefaultWriter<W = any> {
1666116753
readonly closed: Promise<void>;
16662-
readonly desiredSize: number;
16754+
readonly desiredSize: number | null;
1666316755
readonly ready: Promise<void>;
1666416756
abort(reason?: any): Promise<void>;
1666516757
close(): Promise<void>;
1666616758
releaseLock(): void;
16667-
write(chunk?: any): Promise<any>;
16759+
write(chunk: W): Promise<void>;
1666816760
}
1666916761

16670-
declare var WritableStreamDefaultWriter: {
16671-
prototype: WritableStreamDefaultWriter;
16672-
new(): WritableStreamDefaultWriter;
16673-
};
16674-
1667516762
interface XMLDocument extends Document {
1667616763
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1667716764
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
@@ -17021,6 +17108,10 @@ interface PositionErrorCallback {
1702117108
(positionError: PositionError): void;
1702217109
}
1702317110

17111+
interface QueuingStrategySizeCallback<T = any> {
17112+
(chunk: T): number;
17113+
}
17114+
1702417115
interface RTCPeerConnectionErrorCallback {
1702517116
(error: DOMException): void;
1702617117
}
@@ -17033,20 +17124,44 @@ interface RTCStatsCallback {
1703317124
(report: RTCStatsReport): void;
1703417125
}
1703517126

17127+
interface ReadableByteStreamControllerCallback {
17128+
(controller: ReadableByteStreamController): void | PromiseLike<void>;
17129+
}
17130+
17131+
interface ReadableStreamDefaultControllerCallback<R> {
17132+
(controller: ReadableStreamDefaultController<R>): void | PromiseLike<void>;
17133+
}
17134+
17135+
interface ReadableStreamErrorCallback {
17136+
(reason: any): void | PromiseLike<void>;
17137+
}
17138+
17139+
interface TransformStreamDefaultControllerCallback<O> {
17140+
(controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
17141+
}
17142+
17143+
interface TransformStreamDefaultControllerTransformCallback<I, O> {
17144+
(chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
17145+
}
17146+
1703617147
interface VoidFunction {
1703717148
(): void;
1703817149
}
1703917150

17040-
interface WritableStreamChunkCallback {
17041-
(chunk: any, controller: WritableStreamDefaultController): void;
17151+
interface WritableStreamDefaultControllerCloseCallback {
17152+
(): void | PromiseLike<void>;
17153+
}
17154+
17155+
interface WritableStreamDefaultControllerStartCallback {
17156+
(controller: WritableStreamDefaultController): void | PromiseLike<void>;
1704217157
}
1704317158

17044-
interface WritableStreamDefaultControllerCallback {
17045-
(controller: WritableStreamDefaultController): void;
17159+
interface WritableStreamDefaultControllerWriteCallback<W> {
17160+
(chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;
1704617161
}
1704717162

1704817163
interface WritableStreamErrorCallback {
17049-
(reason: string): void;
17164+
(reason: any): void | PromiseLike<void>;
1705017165
}
1705117166

1705217167
interface HTMLElementTagNameMap {
@@ -17680,7 +17795,7 @@ declare function removeEventListener<K extends keyof WindowEventMap>(type: K, li
1768017795
declare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1768117796
type BlobPart = BufferSource | Blob | string;
1768217797
type HeadersInit = Headers | string[][] | Record<string, string>;
17683-
type BodyInit = Blob | BufferSource | FormData | URLSearchParams | ReadableStream | string;
17798+
type BodyInit = Blob | BufferSource | FormData | URLSearchParams | ReadableStream<Uint8Array> | string;
1768417799
type RequestInfo = Request | string;
1768517800
type DOMHighResTimeStamp = number;
1768617801
type RenderingContext = CanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext;

0 commit comments

Comments
 (0)