File size: 13,954 Bytes
be5030f
1
{"version":3,"sources":["io/stream.ts"],"names":[],"mappings":"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","file":"stream.js","sourcesContent":["// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements.  See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership.  The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License.  You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied.  See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport streamAdapters from './adapters';\nimport { decodeUtf8 } from '../util/utf8';\nimport { ITERATOR_DONE, Readable, Writable, AsyncQueue } from './interfaces';\nimport { toUint8Array, joinUint8Arrays, ArrayBufferViewInput } from '../util/buffer';\n\nimport {\n    isPromise, isFetchResponse,\n    isIterable, isAsyncIterable,\n    isReadableDOMStream, isReadableNodeStream\n} from '../util/compat';\n\n/** @ignore */\nexport type WritableSink<T> = Writable<T> | WritableStream<T> | NodeJS.WritableStream | null;\n/** @ignore */\nexport type ReadableSource<T> = Readable<T> | PromiseLike<T> | AsyncIterable<T> | ReadableStream<T> | NodeJS.ReadableStream | null;\n\n/** @ignore */\nexport class AsyncByteQueue<T extends ArrayBufferViewInput = Uint8Array> extends AsyncQueue<Uint8Array, T> {\n    public write(value: ArrayBufferViewInput | Uint8Array) {\n        if ((value = toUint8Array(value)).byteLength > 0) {\n            return super.write(value as T);\n        }\n    }\n    public toString(sync: true): string;\n    public toString(sync?: false): Promise<string>;\n    public toString(sync = false) {\n        return sync\n            ? decodeUtf8(this.toUint8Array(true))\n            : this.toUint8Array(false).then(decodeUtf8);\n    }\n    public toUint8Array(sync: true): Uint8Array;\n    public toUint8Array(sync?: false): Promise<Uint8Array>;\n    public toUint8Array(sync = false) {\n        return sync ? joinUint8Arrays(this._values as any[])[0] : (async () => {\n            let buffers = [], byteLength = 0;\n            for await (const chunk of this) {\n                buffers.push(chunk);\n                byteLength += chunk.byteLength;\n            }\n            return joinUint8Arrays(buffers, byteLength)[0];\n        })();\n    }\n}\n\n/** @ignore */\nexport class ByteStream implements IterableIterator<Uint8Array> {\n    // @ts-ignore\n    private source: ByteStreamSource<Uint8Array>;\n    constructor(source?: Iterable<ArrayBufferViewInput> | ArrayBufferViewInput) {\n        if (source) {\n            this.source = new ByteStreamSource(streamAdapters.fromIterable(source));\n        }\n    }\n    [Symbol.iterator]() { return this; }\n    public next(value?: any) { return this.source.next(value); }\n    public throw(value?: any) { return this.source.throw(value); }\n    public return(value?: any) { return this.source.return(value); }\n    public peek(size?: number | null) { return this.source.peek(size); }\n    public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\nexport class AsyncByteStream implements Readable<Uint8Array>, AsyncIterableIterator<Uint8Array> {\n    // @ts-ignore\n    private source: AsyncByteStreamSource<Uint8Array>;\n    constructor(source?: PromiseLike<ArrayBufferViewInput> | Response | ReadableStream<ArrayBufferViewInput> | NodeJS.ReadableStream | AsyncIterable<ArrayBufferViewInput> | Iterable<ArrayBufferViewInput>) {\n        if (source instanceof AsyncByteStream) {\n            this.source = (source as AsyncByteStream).source;\n        } else if (source instanceof AsyncByteQueue) {\n            this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n        } else if (isReadableNodeStream(source)) {\n            this.source = new AsyncByteStreamSource(streamAdapters.fromNodeStream(source));\n        } else if (isReadableDOMStream<ArrayBufferViewInput>(source)) {\n            this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source));\n        } else if (isFetchResponse(source)) {\n            this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source.body!));\n        } else if (isIterable<ArrayBufferViewInput>(source)) {\n            this.source = new AsyncByteStreamSource(streamAdapters.fromIterable(source));\n        } else if (isPromise<ArrayBufferViewInput>(source)) {\n            this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n        } else if (isAsyncIterable<ArrayBufferViewInput>(source)) {\n            this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n        }\n    }\n    [Symbol.asyncIterator]() { return this; }\n    public next(value?: any) { return this.source.next(value); }\n    public throw(value?: any) { return this.source.throw(value); }\n    public return(value?: any) { return this.source.return(value); }\n    public get closed(): Promise<void> { return this.source.closed; }\n    public cancel(reason?: any) { return this.source.cancel(reason); }\n    public peek(size?: number | null) { return this.source.peek(size); }\n    public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\ninterface ByteStreamSourceIterator<T> extends IterableIterator<T> {\n    next(value?: { cmd: 'peek' | 'read', size?: number | null }): IteratorResult<T>;\n}\n\n/** @ignore */\ninterface AsyncByteStreamSourceIterator<T> extends AsyncIterableIterator<T> {\n    next(value?: { cmd: 'peek' | 'read', size?: number | null }): Promise<IteratorResult<T>>;\n}\n\n/** @ignore */\nclass ByteStreamSource<T> {\n    constructor(protected source: ByteStreamSourceIterator<T>) {}\n    public cancel(reason?: any) { this.return(reason); }\n    public peek(size?: number | null): T | null { return this.next(size, 'peek').value; }\n    public read(size?: number | null): T | null { return this.next(size, 'read').value; }\n    public next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return this.source.next({ cmd, size }); }\n    public throw(value?: any) { return Object.create((this.source.throw && this.source.throw(value)) || ITERATOR_DONE); }\n    public return(value?: any) { return Object.create((this.source.return && this.source.return(value)) || ITERATOR_DONE); }\n}\n\n/** @ignore */\nclass AsyncByteStreamSource<T> implements Readable<T> {\n\n    private _closedPromise: Promise<void>;\n    private _closedPromiseResolve?: (value?: any) => void;\n    constructor (protected source: ByteStreamSourceIterator<T> | AsyncByteStreamSourceIterator<T>) {\n        this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n    }\n    public async cancel(reason?: any) { await this.return(reason); }\n    public get closed(): Promise<void> { return this._closedPromise; }\n    public async read(size?: number | null): Promise<T | null> { return (await this.next(size, 'read')).value; }\n    public async peek(size?: number | null): Promise<T | null> { return (await this.next(size, 'peek')).value; }\n    public async next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return (await this.source.next({ cmd, size })); }\n    public async throw(value?: any) {\n        const result = (this.source.throw && await this.source.throw(value)) || ITERATOR_DONE;\n        this._closedPromiseResolve && this._closedPromiseResolve();\n        this._closedPromiseResolve = undefined;\n        return Object.create(result);\n    }\n    public async return(value?: any) {\n        const result = (this.source.return && await this.source.return(value)) || ITERATOR_DONE;\n        this._closedPromiseResolve && this._closedPromiseResolve();\n        this._closedPromiseResolve = undefined;\n        return Object.create(result);\n    }\n}\n"]}