import { Duplex } from "readable-stream"; | |
import { | |
BufferList as BL, | |
BufferListConstructor, | |
BufferListAcceptedTypes, | |
} from "./BufferList"; | |
type BufferListStreamInit = | |
| ((err: Error, buffer: Buffer) => void) | |
| BufferListAcceptedTypes; | |
interface BufferListStreamConstructor { | |
new (initData?: BufferListStreamInit): BufferListStream; | |
(callback?: BufferListStreamInit): BufferListStream; | |
/** | |
* Determines if the passed object is a BufferList. It will return true | |
* if the passed object is an instance of BufferList or BufferListStream | |
* and false otherwise. | |
* | |
* N.B. this won't return true for BufferList or BufferListStream instances | |
* created by versions of this library before this static method was added. | |
* | |
* @param other | |
*/ | |
isBufferList(other: unknown): boolean; | |
/** | |
* Rexporting BufferList and BufferListStream to fix | |
* issue with require/commonjs import and "export = " below. | |
*/ | |
BufferList: BufferListConstructor; | |
BufferListStream: BufferListStreamConstructor; | |
} | |
interface BufferListStream extends Duplex, BL { | |
prototype: BufferListStream & BL; | |
} | |
/** | |
* BufferListStream is a Node Duplex Stream, so it can be read from | |
* and written to like a standard Node stream. You can also pipe() | |
* to and from a BufferListStream instance. | |
* | |
* The constructor takes an optional callback, if supplied, the | |
* callback will be called with an error argument followed by a | |
* reference to the bl instance, when bl.end() is called | |
* (i.e. from a piped stream). | |
* | |
* This is a convenient method of collecting the entire contents of | |
* a stream, particularly when the stream is chunky, such as a network | |
* stream. | |
* | |
* Normally, no arguments are required for the constructor, but you can | |
* initialise the list by passing in a single Buffer object or an array | |
* of Buffer object. | |
* | |
* `new` is not strictly required, if you don't instantiate a new object, | |
* it will be done automatically for you so you can create a new instance | |
* simply with: | |
* | |
* ```js | |
* const { BufferListStream } = require('bl'); | |
* const bl = BufferListStream(); | |
* | |
* // equivalent to: | |
* | |
* const { BufferListStream } = require('bl'); | |
* const bl = new BufferListStream(); | |
* ``` | |
* | |
* N.B. For backwards compatibility reasons, BufferListStream is the default | |
* export when you `require('bl')`: | |
* | |
* ```js | |
* const { BufferListStream } = require('bl') | |
* | |
* // equivalent to: | |
* | |
* const BufferListStream = require('bl') | |
* ``` | |
*/ | |
declare const BufferListStream: BufferListStreamConstructor; | |
export = BufferListStream; | |