@stream-toolbox/split
Version:
Split a readable stream into multiple readable streams by size or Buffer
51 lines (50 loc) • 1.9 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { Readable, ReadableOptions, Writable, WritableOptions } from "stream";
type partOptions = {
separator: number | Buffer | string;
keepSeparator?: boolean;
head?: Buffer | string;
tail?: Buffer | string;
readableOptions?: Omit<ReadableOptions, "objectMode" | "read">;
};
type partConfig = {
separator: number | Buffer;
keepSeparator: boolean;
head: Buffer;
tail: Buffer;
readableOptions: ReadableOptions;
};
declare class Part extends Readable {
kickoff: boolean;
cutted: boolean;
called: number;
size: number;
index: number;
space: number;
config: partConfig;
constructor(config: partConfig);
}
type onPart = (this: Spliter, part: Part, callback: (error?: Error | null, config?: partOptions["separator"] | partOptions) => void) => void | Promise<partOptions["separator"] | partOptions>;
declare class Spliter extends Writable {
private part;
partCount: number;
private forwardable;
private freeze;
private remain;
private finalCb;
private finalCbed;
private searcher;
private onPart;
constructor(partOptions: partOptions["separator"] | partOptions, onPart: onPart, opts?: Omit<WritableOptions, "objectMode" | "write" | "writev" | "final" | "destroy">);
private createPart;
private normalizeConfig;
private initSearcher;
private cut;
private forward;
_write(...args: Parameters<Exclude<WritableOptions["write"], undefined>>): void;
_final(callback: (error?: Error | null) => void): void;
_destroy(error: Error | null, callback: (error?: Error | null) => void): void;
}
declare function createSpliter(partOptions: partOptions["separator"] | partOptions, onPart: onPart, opts?: Omit<WritableOptions, "objectMode" | "write" | "writev" | "final" | "destroy">): Spliter;
export = createSpliter;