hole
Version:
Async friendly, stream-based task consuming utility in Node.js
24 lines (23 loc) • 1.05 kB
TypeScript
/// <reference types="node" />
import { Readable, Transform, Writable } from 'stream';
import LazyPromise from 'lazy-promise';
import { ProcessorOption } from './types';
export declare function fromStream(readable: Readable): Hole<any>;
export declare function fromArray<T>(array: T[]): Hole<T>;
export default function hole<T>(obj: T): Hole<T>;
declare type ArrayElement<ArrayType> = ArrayType extends (infer ElementType)[] ? ElementType : never;
declare type ThenArg<T> = T extends Promise<infer U> ? U : T;
declare type Exists<T> = Exclude<NonNullable<T>, void>;
export declare class Hole<T> extends LazyPromise<T> {
private readonly readable;
private procInfoArray;
constructor(readable: Readable);
pipe(p: Readable): Hole<any>;
pipe(p: Writable): Hole<any>;
pipe<U>(p: (this: Transform, arg: T) => U, opts?: ProcessorOption | number): Hole<Exists<ThenArg<U>>>;
split<U = ArrayElement<T>>(): Hole<U>;
concat(size: number): Hole<T[]>;
collect(): Promise<T[]>;
collectSet(): Promise<Set<T>>;
}
export {};