UNPKG

@stream-toolbox/split

Version:

Split a readable stream into multiple readable streams by size or Buffer

51 lines (50 loc) 1.9 kB
/// <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;