2020-11-10 22:12:02 +00:00
/// <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 ,
2021-06-20 07:35:43 +00:00
options? : getStream.Options
2020-11-10 22:12:02 +00:00
) : 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 ;