From 51de4ea26b78b41393fd83b4b31bfdad01a867cf Mon Sep 17 00:00:00 2001 From: Charles Samborski Date: Wed, 24 Jan 2018 01:02:43 +0100 Subject: [PATCH] Minor fixes to type definitions - Document support for RxJS 4 and 5 - Accept `Stream` as a return value instead of `Readable` - Remove dummy body in stream tests. Closes gulpjs/async-done#41 --- README.md | 11 +++++++---- index.d.ts | 4 ++-- test/observables.js | 1 + test/types/streams.ts | 20 ++------------------ 4 files changed, 12 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index a0fa118..ea86a0b 100644 --- a/README.md +++ b/README.md @@ -67,9 +67,9 @@ Optionally takes a callback to call when async tasks are complete. * `Promise` returned - Completion: [onFulfilled][promise-onfulfilled] method called - Error: [onRejected][promise-onrejected] method called -* `Observable` returned - - Completion: [onCompleted][observable-subscribe] method called - - Error: [onError][observable-subscribe] method called +* `Observable` (e.g. from [RxJS v5][rxjs5-observable] or [RxJS v4][rxjs5-observable]) returned + - Completion: [complete][rxjs5-subscriber-complete] method called + - Error: [error][rxjs5-subscriber-error] method called __Warning:__ Sync tasks are __not supported__ and your function will never complete if the one of the above strategies is not used to signal completion. However, thrown errors will be caught by the domain. @@ -96,7 +96,10 @@ MIT [event-stream]: https://github.com/dominictarr/event-stream [promise-onfulfilled]: http://promisesaplus.com/#point-26 [promise-onrejected]: http://promisesaplus.com/#point-30 -[observable-subscribe]: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/subscribe.md +[rx4-observable]: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/observable.md +[rxjs5-observable]: http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html +[rxjs5-observer-complete]: http://reactivex.io/rxjs/class/es6/MiscJSDoc.js~ObserverDoc.html#instance-method-complete +[rxjs5-observer-error]: http://reactivex.io/rxjs/class/es6/MiscJSDoc.js~ObserverDoc.html#instance-method-error [downloads-image]: http://img.shields.io/npm/dm/async-done.svg [npm-url]: https://www.npmjs.com/package/async-done diff --git a/index.d.ts b/index.d.ts index 6792eb8..f947f6c 100644 --- a/index.d.ts +++ b/index.d.ts @@ -50,7 +50,7 @@ */ import { ChildProcess } from "child_process"; import { EventEmitter } from "events"; -import { Readable as ReadableStream } from "stream"; +import { Stream } from "stream"; declare namespace asyncDone { @@ -87,7 +87,7 @@ declare namespace asyncDone { export type AsyncTask = ((done: VoidCallback) => void) | ((done: Callback) => void) - | (() => ChildProcess | EventEmitter | Observable | PromiseLike | ReadableStream ); + | (() => ChildProcess | EventEmitter | Observable | PromiseLike | Stream); } /** diff --git a/test/observables.js b/test/observables.js index a468eb3..4956878 100644 --- a/test/observables.js +++ b/test/observables.js @@ -11,6 +11,7 @@ function success() { } function successValue() { + // This corresponds to `Observable.return(42);` in RxJS 4 return Observable.of(42); } diff --git a/test/types/streams.ts b/test/types/streams.ts index a3aed30..cda238b 100644 --- a/test/types/streams.ts +++ b/test/types/streams.ts @@ -1,30 +1,14 @@ import asyncDone from "async-done"; import { Readable, Stream } from "stream"; -function readableSuccess(): Readable { - return undefined as any; -} - -function readableFail(): Readable { - return undefined as any; -} - function streamSuccess(): Stream { - return undefined as any; + return new Stream(); } function streamFail(): Stream { - return undefined as any; + return new Stream(); } -asyncDone(readableSuccess, function (err: Error | null): void { - console.log("Done"); -}); - -asyncDone(readableFail, function (err: Error | null): void { - console.log("Done"); -}); - asyncDone(streamSuccess, function (err: Error | null): void { console.log("Done"); });