A simple adapter to easily use RxJS with commander.
$ npm install commander-rxjs
Important: commander
and rxjs
are both peer dependencies. You must install them alongside commander-rxjs
.
$ npm install commander rxjs
commander
exports an instance of a Command
:
import program from 'commander';
program
.command('example')
.action(options => {
// do stuff
});
program
.parse(proces.argv);
commander-rxjs
exports an instance of a wrapped Command
known as an ObservableCommand
.
The ObservableCommand
has the exact same API as a Command
, with the addition of one function, observe()
, which is used in place of the .action()
function:
import program from 'commander-rxjs';
program
.command('example')
.observe()
// ... do stream stuff
.subscribe();
program
.parse(proces.argv);
returns an RxJS observable stream with the following data:
{
args: {
'camelCasedArgument': 'value',
'...': '...'
},
options: {
'camelCasedOption': 'value',
'...': '...'
},
command: Command // (commander raw command)
}
Be sure to checkout all of the examples. They can easily be run with npm run example:[example]
.