Skip to content
This repository has been archived by the owner on Aug 23, 2020. It is now read-only.
/ commander-rxjs Public archive

A simple adapter to easily use RxJS with commander.

License

Notifications You must be signed in to change notification settings

nickbreaton/commander-rxjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

commander-rxjs

NPM Version TravisCI Codecov

A simple adapter to easily use RxJS with commander.

Installation

$ npm install commander-rxjs

Important: commander and rxjs are both peer dependencies. You must install them alongside commander-rxjs.

$ npm install commander rxjs

API

ObservableCommand

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);

observe()

returns an RxJS observable stream with the following data:

{
  args: {
    'camelCasedArgument': 'value',
    '...': '...'
  },
  options: {
    'camelCasedOption': 'value',
    '...': '...'
  },
  command: Command // (commander raw command)
}

Examples

Be sure to checkout all of the examples. They can easily be run with npm run example:[example].

About

A simple adapter to easily use RxJS with commander.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published