diff --git a/types/parallel-transform/index.d.ts b/types/parallel-transform/index.d.ts new file mode 100644 index 0000000000..da7c64fb1c --- /dev/null +++ b/types/parallel-transform/index.d.ts @@ -0,0 +1,27 @@ +// Type definitions for parallel-transform 1.1 +// Project: https://github.com/mafintosh/parallel-transform +// Definitions by: Daniel Cassidy +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import { Transform, TransformOptions, TransformCallback } from "stream"; + +type OnTransform = (chunk: any, callback: TransformCallback) => void; + +declare namespace ParallelTransform { + interface Options extends TransformOptions { + ordered?: boolean; + } +} + +declare const ParallelTransform: { + (maxParallel: number, opts: ParallelTransform.Options | undefined | null, ontransform: OnTransform): Transform; + (opts: ParallelTransform.Options | number | undefined | null, ontransform: OnTransform): Transform; + (ontransform: OnTransform): Transform; + new(maxParallel: number, opts: ParallelTransform.Options | undefined | null, ontransform: OnTransform): Transform; + new(opts: ParallelTransform.Options | number | undefined | null, ontransform: OnTransform): Transform; + new(ontransform: OnTransform): Transform; +}; + +export = ParallelTransform; diff --git a/types/parallel-transform/parallel-transform-tests.ts b/types/parallel-transform/parallel-transform-tests.ts new file mode 100644 index 0000000000..227cccd53b --- /dev/null +++ b/types/parallel-transform/parallel-transform-tests.ts @@ -0,0 +1,19 @@ +import transform = require("parallel-transform"); + +let stream = transform(10, (data, callback) => { + setTimeout(() => callback(undefined, data), Math.random() * 1000); +}); + +stream.write("1"); +stream.write("2"); +stream.write("3"); +stream.write("4"); +stream.end(); + +stream.on("data", data => console.log(data.toString())); +stream.on("end", () => "end of stream"); + +stream = transform(10, { objectMode: false }, + (data, callback) => callback(undefined, data)); + +stream = transform({ ordered: false }, (data, callback) => callback(new Error("fail"), null)); diff --git a/types/parallel-transform/tsconfig.json b/types/parallel-transform/tsconfig.json new file mode 100644 index 0000000000..524fa6e5aa --- /dev/null +++ b/types/parallel-transform/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "parallel-transform-tests.ts" + ] +} diff --git a/types/parallel-transform/tslint.json b/types/parallel-transform/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/parallel-transform/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }