123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- /// <reference types="node"/>
- import {Stream} from 'stream';
- declare class MaxBufferErrorClass extends Error {
- readonly name: 'MaxBufferError';
- constructor();
- }
- declare namespace getStream {
- interface Options {
- /**
- Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected with a `MaxBufferError` error.
- @default Infinity
- */
- readonly maxBuffer?: number;
- }
- interface OptionsWithEncoding<EncodingType = BufferEncoding> extends Options {
- /**
- [Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream.
- @default 'utf8'
- */
- readonly encoding?: EncodingType;
- }
- type MaxBufferError = MaxBufferErrorClass;
- }
- declare const getStream: {
- /**
- Get the `stream` as a string.
- @returns A promise that resolves when the end event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode.
- @example
- ```
- import * as fs from 'fs';
- import getStream = require('get-stream');
- (async () => {
- const stream = fs.createReadStream('unicorn.txt');
- console.log(await getStream(stream));
- // ,,))))))));,
- // __)))))))))))))),
- // \|/ -\(((((''''((((((((.
- // -*-==//////(('' . `)))))),
- // /|\ ))| o ;-. '((((( ,(,
- // ( `| / ) ;))))' ,_))^;(~
- // | | | ,))((((_ _____------~~~-. %,;(;(>';'~
- // o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~
- // ; ''''```` `: `:::|\,__,%% );`'; ~
- // | _ ) / `:|`----' `-'
- // ______/\/~ | / /
- // /~;;.____/;;' / ___--,-( `;;;/
- // / // _;______;'------~~~~~ /;;/\ /
- // // | | / ; \;;,\
- // (<_ | ; /',/-----' _>
- // \_| ||_ //~;~~~~~~~~~
- // `\_| (,~~
- // \~\
- // ~~
- })();
- ```
- */
- (stream: Stream, options?: getStream.OptionsWithEncoding): Promise<string>;
- /**
- Get the `stream` as a buffer.
- It honors the `maxBuffer` option as above, but it refers to byte length rather than string length.
- */
- buffer(
- stream: Stream,
- options?: getStream.Options
- ): Promise<Buffer>;
- /**
- Get the `stream` as an array of values.
- It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen:
- - When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes).
- - When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array.
- - When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array.
- */
- array<StreamObjectModeType>(
- stream: Stream,
- options?: getStream.Options
- ): Promise<StreamObjectModeType[]>;
- array(
- stream: Stream,
- options: getStream.OptionsWithEncoding<'buffer'>
- ): Promise<Buffer[]>;
- array(
- stream: Stream,
- options: getStream.OptionsWithEncoding<BufferEncoding>
- ): Promise<string[]>;
- MaxBufferError: typeof MaxBufferErrorClass;
- };
- export = getStream;
|