diff --git a/lib/flow-typed.config.json b/lib/flow-typed.config.json --- a/lib/flow-typed.config.json +++ b/lib/flow-typed.config.json @@ -9,6 +9,7 @@ "serviceworkers", "webassembly", "jsx", - "html" + "html", + "streams" ] } diff --git a/lib/flow-typed/environments/streams.js b/lib/flow-typed/environments/streams.js new file mode 100644 --- /dev/null +++ b/lib/flow-typed/environments/streams.js @@ -0,0 +1,136 @@ +// flow-typed signature: e6e6768618776352dd676f63502aea4d +// flow-typed version: 40e7dfcbd5/streams/flow_>=v0.261.x + +type TextEncodeOptions = { options?: boolean, ... }; + +declare class ReadableStreamController { + constructor( + stream: ReadableStream, + underlyingSource: UnderlyingSource, + size: number, + highWaterMark: number, + ): void, + + desiredSize: number, + + close(): void, + enqueue(chunk: any): void, + error(error: Error): void, +} + +declare class ReadableStreamBYOBRequest { + constructor(controller: ReadableStreamController, view: $TypedArray): void, + + view: $TypedArray, + + respond(bytesWritten: number): ?any, + respondWithNewView(view: $TypedArray): ?any, +} + +declare class ReadableByteStreamController extends ReadableStreamController { + constructor( + stream: ReadableStream, + underlyingSource: UnderlyingSource, + highWaterMark: number, + ): void, + + byobRequest: ReadableStreamBYOBRequest, +} + +declare class ReadableStreamReader { + constructor(stream: ReadableStream): void, + + closed: boolean, + + cancel(reason: string): void, + read(): Promise<{ + value: ?any, + done: boolean, + ... + }>, + releaseLock(): void, +} + +declare interface UnderlyingSource { + autoAllocateChunkSize?: number, + type?: string, + + start?: (controller: ReadableStreamController) => ?Promise, + pull?: (controller: ReadableStreamController) => ?Promise, + cancel?: (reason: string) => ?Promise, +} + +declare class TransformStream { + readable: ReadableStream, + writable: WritableStream, +}; + +interface PipeThroughTransformStream { + readable: ReadableStream, + writable: WritableStream, +} + +type PipeToOptions = { + preventClose?: boolean, + preventAbort?: boolean, + preventCancel?: boolean, + ... +}; + +type QueuingStrategy = { + highWaterMark: number, + size(chunk: ?any): number, + ... +}; + +declare class ReadableStream { + constructor( + underlyingSource: ?UnderlyingSource, + queuingStrategy: ?QueuingStrategy, + ): void, + + locked: boolean, + + cancel(reason: string): void, + getReader(): ReadableStreamReader, + pipeThrough(transform: PipeThroughTransformStream, options: ?any): void, + pipeTo(dest: WritableStream, options: ?PipeToOptions): Promise, + tee(): [ReadableStream, ReadableStream], +}; + +declare interface WritableStreamController { + error(error: Error): void, +} + +declare interface UnderlyingSink { + autoAllocateChunkSize?: number, + type?: string, + + abort?: (reason: string) => ?Promise, + close?: (controller: WritableStreamController) => ?Promise, + start?: (controller: WritableStreamController) => ?Promise, + write?: (chunk: any, controller: WritableStreamController) => ?Promise, +} + +declare interface WritableStreamWriter { + closed: Promise, + desiredSize?: number, + ready: Promise, + + abort(reason: string): ?Promise, + close(): Promise, + releaseLock(): void, + write(chunk: any): Promise, +} + +declare class WritableStream { + constructor( + underlyingSink: ?UnderlyingSink, + queuingStrategy: QueuingStrategy, + ): void, + + locked: boolean, + + abort(reason: string): void, + getWriter(): WritableStreamWriter, +} diff --git a/services/electron-update-server/flow-typed.config.json b/services/electron-update-server/flow-typed.config.json --- a/services/electron-update-server/flow-typed.config.json +++ b/services/electron-update-server/flow-typed.config.json @@ -9,6 +9,7 @@ "serviceworkers", "webassembly", "jsx", - "html" + "html", + "streams" ] } diff --git a/services/electron-update-server/flow-typed/environments/streams.js b/services/electron-update-server/flow-typed/environments/streams.js new file mode 100644 --- /dev/null +++ b/services/electron-update-server/flow-typed/environments/streams.js @@ -0,0 +1,136 @@ +// flow-typed signature: e6e6768618776352dd676f63502aea4d +// flow-typed version: 40e7dfcbd5/streams/flow_>=v0.261.x + +type TextEncodeOptions = { options?: boolean, ... }; + +declare class ReadableStreamController { + constructor( + stream: ReadableStream, + underlyingSource: UnderlyingSource, + size: number, + highWaterMark: number, + ): void, + + desiredSize: number, + + close(): void, + enqueue(chunk: any): void, + error(error: Error): void, +} + +declare class ReadableStreamBYOBRequest { + constructor(controller: ReadableStreamController, view: $TypedArray): void, + + view: $TypedArray, + + respond(bytesWritten: number): ?any, + respondWithNewView(view: $TypedArray): ?any, +} + +declare class ReadableByteStreamController extends ReadableStreamController { + constructor( + stream: ReadableStream, + underlyingSource: UnderlyingSource, + highWaterMark: number, + ): void, + + byobRequest: ReadableStreamBYOBRequest, +} + +declare class ReadableStreamReader { + constructor(stream: ReadableStream): void, + + closed: boolean, + + cancel(reason: string): void, + read(): Promise<{ + value: ?any, + done: boolean, + ... + }>, + releaseLock(): void, +} + +declare interface UnderlyingSource { + autoAllocateChunkSize?: number, + type?: string, + + start?: (controller: ReadableStreamController) => ?Promise, + pull?: (controller: ReadableStreamController) => ?Promise, + cancel?: (reason: string) => ?Promise, +} + +declare class TransformStream { + readable: ReadableStream, + writable: WritableStream, +}; + +interface PipeThroughTransformStream { + readable: ReadableStream, + writable: WritableStream, +} + +type PipeToOptions = { + preventClose?: boolean, + preventAbort?: boolean, + preventCancel?: boolean, + ... +}; + +type QueuingStrategy = { + highWaterMark: number, + size(chunk: ?any): number, + ... +}; + +declare class ReadableStream { + constructor( + underlyingSource: ?UnderlyingSource, + queuingStrategy: ?QueuingStrategy, + ): void, + + locked: boolean, + + cancel(reason: string): void, + getReader(): ReadableStreamReader, + pipeThrough(transform: PipeThroughTransformStream, options: ?any): void, + pipeTo(dest: WritableStream, options: ?PipeToOptions): Promise, + tee(): [ReadableStream, ReadableStream], +}; + +declare interface WritableStreamController { + error(error: Error): void, +} + +declare interface UnderlyingSink { + autoAllocateChunkSize?: number, + type?: string, + + abort?: (reason: string) => ?Promise, + close?: (controller: WritableStreamController) => ?Promise, + start?: (controller: WritableStreamController) => ?Promise, + write?: (chunk: any, controller: WritableStreamController) => ?Promise, +} + +declare interface WritableStreamWriter { + closed: Promise, + desiredSize?: number, + ready: Promise, + + abort(reason: string): ?Promise, + close(): Promise, + releaseLock(): void, + write(chunk: any): Promise, +} + +declare class WritableStream { + constructor( + underlyingSink: ?UnderlyingSink, + queuingStrategy: QueuingStrategy, + ): void, + + locked: boolean, + + abort(reason: string): void, + getWriter(): WritableStreamWriter, +}