From 4591822e6fa888611b2e1a054ab679161870d47d Mon Sep 17 00:00:00 2001 From: Kristian Mandrup Date: Wed, 23 Nov 2016 14:04:05 +0100 Subject: [PATCH 1/4] update deps --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0064129..0d3a5ba 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ ], "main": "index.js", "dependencies": { - "colors": "^0.6.2", - "rx": "^2.3.11" + "colors": "^1.1.2", + "rx": "^4.1.0" } } From 2a72e4257f2250ed7815381cda1ae4356614b27f Mon Sep 17 00:00:00 2001 From: Kristian Mandrup Date: Wed, 23 Nov 2016 22:10:51 +0100 Subject: [PATCH 2/4] make configurable --- README.md | 6 +++++- index.js | 39 ++++++++++++++++++++++++++++++--------- package.json | 2 +- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 7d18e17..207f321 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,11 @@ aster.src('src/**/*.js') .map(plugin1(optionsForPlugin1)) .map(plugin2(optionsForPlugin2)) // ... -.subscribe(aster.runner); +.subscribe(aster.runner({ + onFile: (file) => { + console.log('>> %s'.yellow, file.path) + } +})); ``` ## API diff --git a/index.js b/index.js index 78cad85..1c831de 100644 --- a/index.js +++ b/index.js @@ -3,12 +3,33 @@ var Rx = require('rx'); require('colors'); -module.exports = Rx.Observer.create(function onFiles(files) { - console.log('Processing files...'); - - files.subscribe(Rx.Observer.create( - function onFile(file) { console.log('>> %s'.yellow, file.path) }, - function onError(error) { console.error(error.stack.red) }, - function onCompleted() { console.log('Done.'.green) } - )); -}); +function onFile(file) { + console.log('>> %s'.yellow, file.path) +} + +function onError(error) { + console.error(error.stack.red) +} + +function onCompleted() { + console.log('Done.'.green) +} + +function defaultSubscriber(options) { + return function onFiles(files) { + console.log('Processing files...'); + + files.subscribe(Rx.Observer.create( + options.onFile || onFile, + options.onError || onError, + options.onCompleted || onCompleted + )); + } +} + +module.exports = function(options) { + var subscriber = options.subscriber || defaultSubscriber + subscriber = typeof subscriber === 'function' ? subscriber(options) : subscriber + + Rx.Observer.create(subscriber); +} diff --git a/package.json b/package.json index 0d3a5ba..8bb106c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aster-runner", - "version": "0.1.1", + "version": "0.2.0", "description": "Task runner for aster.", "author": "Ingvar Stepanyan (https://github.com/RReverser)", "repository": "asterjs/aster-runner", From c2dfa193a67a7f5f621f16cf7241759e86c32a84 Mon Sep 17 00:00:00 2001 From: Kristian Mandrup Date: Thu, 24 Nov 2016 11:02:05 +0100 Subject: [PATCH 3/4] updated docs --- README.md | 41 +++++++++++++++++++++++++++++++++++++++-- index.js | 2 +- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 207f321..0798df9 100644 --- a/README.md +++ b/README.md @@ -18,17 +18,54 @@ aster.src('src/**/*.js') .map(plugin2(optionsForPlugin2)) // ... .subscribe(aster.runner({ - onFile: (file) => { - console.log('>> %s'.yellow, file.path) + onSuccess: (item) => { + console.log('>> %s'.yellow, item) } })); ``` +When you create an `Observable`, you always pass 3 functions in this order: +- `successHandler` +- `errorHandler` +- `onCompleteHandler` + +The `success` or `error` handler is called for each processed event/item of the Observable stream, the `onComplete` handler when the stream is done (such as no more files to be processed). + +The default event handlers are: + +```js +function onFile(file) { + console.log('>> %s'.yellow, file.path) +} + +function onError(error) { + console.error(error.stack.red) +} + +function onCompleted() { + console.log('Done.'.green) +} +``` + +Where `onFile` is used for `onSuccess` and expects a `file` object with a `path`. + ## API ### runner Type: [`Rx.Observer`](https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/observer.md) +#### options.onSuccess + +Success event handler for individual item/event processed. + +#### options.onError + +Error event handler for individual item/event processed. + +#### options.onCompleted + +Completed handler for when entire stream of events/items of Observable has been processed. + ## License [MIT License](http://en.wikipedia.org/wiki/MIT_License) diff --git a/index.js b/index.js index 1c831de..0d0aa3c 100644 --- a/index.js +++ b/index.js @@ -20,7 +20,7 @@ function defaultSubscriber(options) { console.log('Processing files...'); files.subscribe(Rx.Observer.create( - options.onFile || onFile, + options.onSuccess || onFile, options.onError || onError, options.onCompleted || onCompleted )); From b77ab2a090d1caa52418f9b9732dcc4d603fec54 Mon Sep 17 00:00:00 2001 From: Kristian Mandrup Date: Fri, 25 Nov 2016 17:33:14 +0100 Subject: [PATCH 4/4] rename to onNext --- README.md | 2 +- index.js | 25 +++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 0798df9..1faacd0 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ aster.src('src/**/*.js') .map(plugin2(optionsForPlugin2)) // ... .subscribe(aster.runner({ - onSuccess: (item) => { + onNext: (item) => { console.log('>> %s'.yellow, item) } })); diff --git a/index.js b/index.js index 0d0aa3c..8d4ebe8 100644 --- a/index.js +++ b/index.js @@ -3,16 +3,17 @@ var Rx = require('rx'); require('colors'); -function onFile(file) { - console.log('>> %s'.yellow, file.path) -} - -function onError(error) { - console.error(error.stack.red) -} -function onCompleted() { - console.log('Done.'.green) +var defaults = { + onNext: function(file) { + console.log('>> %s'.yellow, file.path) + }, + onError: function (error) { + console.error(error.stack.red) + }, + onCompleted: function () { + console.log('Done.'.green) + } } function defaultSubscriber(options) { @@ -20,9 +21,9 @@ function defaultSubscriber(options) { console.log('Processing files...'); files.subscribe(Rx.Observer.create( - options.onSuccess || onFile, - options.onError || onError, - options.onCompleted || onCompleted + options.onNext || defaults.onNext, + options.onError || defaults.onError, + options.onCompleted || defaults.onCompleted )); } }