UNPKG

13.8 kBTypeScriptView Raw
1declare module 'stream/web' {
2 // stub module, pending copy&paste from .d.ts or manual impl
3 // copy from lib.dom.d.ts
4 interface ReadableWritablePair<R = any, W = any> {
5 readable: ReadableStream<R>;
6 /**
7 * Provides a convenient, chainable way of piping this readable stream
8 * through a transform stream (or any other { writable, readable }
9 * pair). It simply pipes the stream into the writable side of the
10 * supplied pair, and returns the readable side for further use.
11 *
12 * Piping a stream will lock it for the duration of the pipe, preventing
13 * any other consumer from acquiring a reader.
14 */
15 writable: WritableStream<W>;
16 }
17 interface StreamPipeOptions {
18 preventAbort?: boolean;
19 preventCancel?: boolean;
20 /**
21 * Pipes this readable stream to a given writable stream destination.
22 * The way in which the piping process behaves under various error
23 * conditions can be customized with a number of passed options. It
24 * returns a promise that fulfills when the piping process completes
25 * successfully, or rejects if any errors were encountered.
26 *
27 * Piping a stream will lock it for the duration of the pipe, preventing
28 * any other consumer from acquiring a reader.
29 *
30 * Errors and closures of the source and destination streams propagate
31 * as follows:
32 *
33 * An error in this source readable stream will abort destination,
34 * unless preventAbort is truthy. The returned promise will be rejected
35 * with the source's error, or with any error that occurs during
36 * aborting the destination.
37 *
38 * An error in destination will cancel this source readable stream,
39 * unless preventCancel is truthy. The returned promise will be rejected
40 * with the destination's error, or with any error that occurs during
41 * canceling the source.
42 *
43 * When this source readable stream closes, destination will be closed,
44 * unless preventClose is truthy. The returned promise will be fulfilled
45 * once this process completes, unless an error is encountered while
46 * closing the destination, in which case it will be rejected with that
47 * error.
48 *
49 * If destination starts out closed or closing, this source readable
50 * stream will be canceled, unless preventCancel is true. The returned
51 * promise will be rejected with an error indicating piping to a closed
52 * stream failed, or with any error that occurs during canceling the
53 * source.
54 *
55 * The signal option can be set to an AbortSignal to allow aborting an
56 * ongoing pipe operation via the corresponding AbortController. In this
57 * case, this source readable stream will be canceled, and destination
58 * aborted, unless the respective options preventCancel or preventAbort
59 * are set.
60 */
61 preventClose?: boolean;
62 signal?: AbortSignal;
63 }
64 interface ReadableStreamGenericReader {
65 readonly closed: Promise<undefined>;
66 cancel(reason?: any): Promise<void>;
67 }
68 interface ReadableStreamDefaultReadValueResult<T> {
69 done: false;
70 value: T;
71 }
72 interface ReadableStreamDefaultReadDoneResult {
73 done: true;
74 value?: undefined;
75 }
76 type ReadableStreamController<T> = ReadableStreamDefaultController<T>;
77 type ReadableStreamDefaultReadResult<T> = ReadableStreamDefaultReadValueResult<T> | ReadableStreamDefaultReadDoneResult;
78 interface ReadableByteStreamControllerCallback {
79 (controller: ReadableByteStreamController): void | PromiseLike<void>;
80 }
81 interface UnderlyingSinkAbortCallback {
82 (reason?: any): void | PromiseLike<void>;
83 }
84 interface UnderlyingSinkCloseCallback {
85 (): void | PromiseLike<void>;
86 }
87 interface UnderlyingSinkStartCallback {
88 (controller: WritableStreamDefaultController): any;
89 }
90 interface UnderlyingSinkWriteCallback<W> {
91 (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;
92 }
93 interface UnderlyingSourceCancelCallback {
94 (reason?: any): void | PromiseLike<void>;
95 }
96 interface UnderlyingSourcePullCallback<R> {
97 (controller: ReadableStreamController<R>): void | PromiseLike<void>;
98 }
99 interface UnderlyingSourceStartCallback<R> {
100 (controller: ReadableStreamController<R>): any;
101 }
102 interface TransformerFlushCallback<O> {
103 (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
104 }
105 interface TransformerStartCallback<O> {
106 (controller: TransformStreamDefaultController<O>): any;
107 }
108 interface TransformerTransformCallback<I, O> {
109 (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
110 }
111 interface UnderlyingByteSource {
112 autoAllocateChunkSize?: number;
113 cancel?: ReadableStreamErrorCallback;
114 pull?: ReadableByteStreamControllerCallback;
115 start?: ReadableByteStreamControllerCallback;
116 type: 'bytes';
117 }
118 interface UnderlyingSource<R = any> {
119 cancel?: UnderlyingSourceCancelCallback;
120 pull?: UnderlyingSourcePullCallback<R>;
121 start?: UnderlyingSourceStartCallback<R>;
122 type?: undefined;
123 }
124 interface UnderlyingSink<W = any> {
125 abort?: UnderlyingSinkAbortCallback;
126 close?: UnderlyingSinkCloseCallback;
127 start?: UnderlyingSinkStartCallback;
128 type?: undefined;
129 write?: UnderlyingSinkWriteCallback<W>;
130 }
131 interface ReadableStreamErrorCallback {
132 (reason: any): void | PromiseLike<void>;
133 }
134 /** This Streams API interface represents a readable stream of byte data. */
135 interface ReadableStream<R = any> {
136 readonly locked: boolean;
137 cancel(reason?: any): Promise<void>;
138 getReader(): ReadableStreamDefaultReader<R>;
139 pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;
140 pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>;
141 tee(): [ReadableStream<R>, ReadableStream<R>];
142 values(options?: { preventCancel?: boolean }): AsyncIterableIterator<R>;
143 [Symbol.asyncIterator](): AsyncIterableIterator<R>;
144 }
145 const ReadableStream: {
146 prototype: ReadableStream;
147 new (underlyingSource: UnderlyingByteSource, strategy?: QueuingStrategy<Uint8Array>): ReadableStream<Uint8Array>;
148 new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
149 };
150 interface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader {
151 read(): Promise<ReadableStreamDefaultReadResult<R>>;
152 releaseLock(): void;
153 }
154 const ReadableStreamDefaultReader: {
155 prototype: ReadableStreamDefaultReader;
156 new <R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
157 };
158 const ReadableStreamBYOBReader: any;
159 const ReadableStreamBYOBRequest: any;
160 interface ReadableByteStreamController {
161 readonly byobRequest: undefined;
162 readonly desiredSize: number | null;
163 close(): void;
164 enqueue(chunk: ArrayBufferView): void;
165 error(error?: any): void;
166 }
167 const ReadableByteStreamController: {
168 prototype: ReadableByteStreamController;
169 new (): ReadableByteStreamController;
170 };
171 interface ReadableStreamDefaultController<R = any> {
172 readonly desiredSize: number | null;
173 close(): void;
174 enqueue(chunk?: R): void;
175 error(e?: any): void;
176 }
177 const ReadableStreamDefaultController: {
178 prototype: ReadableStreamDefaultController;
179 new (): ReadableStreamDefaultController;
180 };
181 interface Transformer<I = any, O = any> {
182 flush?: TransformerFlushCallback<O>;
183 readableType?: undefined;
184 start?: TransformerStartCallback<O>;
185 transform?: TransformerTransformCallback<I, O>;
186 writableType?: undefined;
187 }
188 interface TransformStream<I = any, O = any> {
189 readonly readable: ReadableStream<O>;
190 readonly writable: WritableStream<I>;
191 }
192 const TransformStream: {
193 prototype: TransformStream;
194 new <I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;
195 };
196 interface TransformStreamDefaultController<O = any> {
197 readonly desiredSize: number | null;
198 enqueue(chunk?: O): void;
199 error(reason?: any): void;
200 terminate(): void;
201 }
202 const TransformStreamDefaultController: {
203 prototype: TransformStreamDefaultController;
204 new (): TransformStreamDefaultController;
205 };
206 /**
207 * This Streams API interface provides a standard abstraction for writing
208 * streaming data to a destination, known as a sink. This object comes with
209 * built-in back pressure and queuing.
210 */
211 interface WritableStream<W = any> {
212 readonly locked: boolean;
213 abort(reason?: any): Promise<void>;
214 close(): Promise<void>;
215 getWriter(): WritableStreamDefaultWriter<W>;
216 }
217 const WritableStream: {
218 prototype: WritableStream;
219 new <W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
220 };
221 /**
222 * This Streams API interface is the object returned by
223 * WritableStream.getWriter() and once created locks the < writer to the
224 * WritableStream ensuring that no other streams can write to the underlying
225 * sink.
226 */
227 interface WritableStreamDefaultWriter<W = any> {
228 readonly closed: Promise<undefined>;
229 readonly desiredSize: number | null;
230 readonly ready: Promise<undefined>;
231 abort(reason?: any): Promise<void>;
232 close(): Promise<void>;
233 releaseLock(): void;
234 write(chunk?: W): Promise<void>;
235 }
236 const WritableStreamDefaultWriter: {
237 prototype: WritableStreamDefaultWriter;
238 new <W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
239 };
240 /**
241 * This Streams API interface represents a controller allowing control of a
242 * WritableStream's state. When constructing a WritableStream, the
243 * underlying sink is given a corresponding WritableStreamDefaultController
244 * instance to manipulate.
245 */
246 interface WritableStreamDefaultController {
247 error(e?: any): void;
248 }
249 const WritableStreamDefaultController: {
250 prototype: WritableStreamDefaultController;
251 new (): WritableStreamDefaultController;
252 };
253 interface QueuingStrategy<T = any> {
254 highWaterMark?: number;
255 size?: QueuingStrategySize<T>;
256 }
257 interface QueuingStrategySize<T = any> {
258 (chunk?: T): number;
259 }
260 interface QueuingStrategyInit {
261 /**
262 * Creates a new ByteLengthQueuingStrategy with the provided high water
263 * mark.
264 *
265 * Note that the provided high water mark will not be validated ahead of
266 * time. Instead, if it is negative, NaN, or not a number, the resulting
267 * ByteLengthQueuingStrategy will cause the corresponding stream
268 * constructor to throw.
269 */
270 highWaterMark: number;
271 }
272 /**
273 * This Streams API interface provides a built-in byte length queuing
274 * strategy that can be used when constructing streams.
275 */
276 interface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {
277 readonly highWaterMark: number;
278 readonly size: QueuingStrategySize<ArrayBufferView>;
279 }
280 const ByteLengthQueuingStrategy: {
281 prototype: ByteLengthQueuingStrategy;
282 new (init: QueuingStrategyInit): ByteLengthQueuingStrategy;
283 };
284 /**
285 * This Streams API interface provides a built-in byte length queuing
286 * strategy that can be used when constructing streams.
287 */
288 interface CountQueuingStrategy extends QueuingStrategy {
289 readonly highWaterMark: number;
290 readonly size: QueuingStrategySize;
291 }
292 const CountQueuingStrategy: {
293 prototype: CountQueuingStrategy;
294 new (init: QueuingStrategyInit): CountQueuingStrategy;
295 };
296 interface TextEncoderStream {
297 /** Returns "utf-8". */
298 readonly encoding: 'utf-8';
299 readonly readable: ReadableStream<Uint8Array>;
300 readonly writable: WritableStream<string>;
301 readonly [Symbol.toStringTag]: string;
302 }
303 const TextEncoderStream: {
304 prototype: TextEncoderStream;
305 new (): TextEncoderStream;
306 };
307 interface TextDecoderOptions {
308 fatal?: boolean;
309 ignoreBOM?: boolean;
310 }
311 type BufferSource = ArrayBufferView | ArrayBuffer;
312 interface TextDecoderStream {
313 /** Returns encoding's name, lower cased. */
314 readonly encoding: string;
315 /** Returns `true` if error mode is "fatal", and `false` otherwise. */
316 readonly fatal: boolean;
317 /** Returns `true` if ignore BOM flag is set, and `false` otherwise. */
318 readonly ignoreBOM: boolean;
319 readonly readable: ReadableStream<string>;
320 readonly writable: WritableStream<BufferSource>;
321 readonly [Symbol.toStringTag]: string;
322 }
323 const TextDecoderStream: {
324 prototype: TextDecoderStream;
325 new (label?: string, options?: TextDecoderOptions): TextDecoderStream;
326 };
327}
328declare module 'node:stream/web' {
329 export * from 'stream/web';
330}