UNPKG

stream-transform

Version:

Object transformations implementing the Node.js `stream.Transform` API

41 lines (35 loc) 1.55 kB
/// <reference types="node" /> import * as stream from "stream"; export type Handler<T = any, U = any> = (record: T, callback: HandlerCallback, params?: any) => U export type HandlerCallback<T = any> = (err?: null | Error, record?: T) => void export type Callback = (err?: null | Error, output?: string) => void export interface Options extends stream.TransformOptions { /** * In the absence of a consumer, like a `stream.Readable`, trigger the consumption of the stream. */ consume?: boolean /** * The number of transformation callbacks to run in parallel; only apply with asynchronous handlers; default to "100". */ parallel?: number /** * Pass user defined parameters to the user handler as last argument. */ params?: any } export interface State { finished: number running: number started: number } export class Transformer extends stream.Transform { constructor(options: Options) readonly options: Options readonly state: State } declare function transform<T = any, U = any>(handler: Handler<T, U>, callback?: Callback): Transformer declare function transform<T = any, U = any>(records: Array<T>, handler: Handler<T, U>, callback?: Callback): Transformer declare function transform<T = any, U = any>(options: Options, handler: Handler<T, U>, callback?: Callback): Transformer declare function transform<T = any, U = any>(records: Array<T>, options: Options, handler: Handler<T, U>, callback?: Callback): Transformer export default transform; export { transform }