Add TransformStream and TransformStreamController (#5042)

This commit is contained in:
Kitson Kelly 2020-05-04 05:10:52 +10:00 committed by GitHub
parent 1560af2b6e
commit 7e32269f3f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 1156 additions and 9 deletions

View file

@ -423,6 +423,42 @@ interface WritableStreamDefaultWriter<W = any> {
write(chunk: W): Promise<void>;
}
declare class TransformStream<I = any, O = any> {
constructor(
transformer?: Transformer<I, O>,
writableStrategy?: QueuingStrategy<I>,
readableStrategy?: QueuingStrategy<O>
);
readonly readable: ReadableStream<O>;
readonly writable: WritableStream<I>;
}
interface TransformStreamDefaultController<O = any> {
readonly desiredSize: number | null;
enqueue(chunk: O): void;
error(reason?: any): void;
terminate(): void;
}
interface Transformer<I = any, O = any> {
flush?: TransformStreamDefaultControllerCallback<O>;
readableType?: undefined;
start?: TransformStreamDefaultControllerCallback<O>;
transform?: TransformStreamDefaultControllerTransformCallback<I, O>;
writableType?: undefined;
}
interface TransformStreamDefaultControllerCallback<O> {
(controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
}
interface TransformStreamDefaultControllerTransformCallback<I, O> {
(
chunk: I,
controller: TransformStreamDefaultController<O>
): void | PromiseLike<void>;
}
interface DOMStringList {
/** Returns the number of strings in strings. */
readonly length: number;