exec-promise
Testable CLIs with promises
Features
- executes the passed function with command line arguments
- wait for completion (sync or promise) before stopping Node
- in case of exception: pretty print the value and exit with exit code 1
- in case of returned value (not undefined):
- if valid exit code (integer), exit Node with it
- otherwise, pretty print it
Introduction
TODO
- executables should be testable
- the execution flow should be predictable and followable (promises)
Install
Download manually or with package-manager.
npm
npm install --save exec-promise
This library requires promises support, for Node versions prior to 0.12 see this page to enable them.
Example
ES 2015
// - The command line arguments are passed as first parameter.// - Node will exists as soon as the promise is settled (with a code// different than 0 in case of an error).// - All errors are catched and properly displayed with a stack// trace.// - Any returned value (i.e. not undefined) will be prettily// displayed
ES5
module { if args !== -1 return 'Usage: my-program [-h | -v]' if args !== -1 var pkg = return 'MyProgram version ' + pkgversion var server = server // The program will run until the server closes or encounters an // error. return server 'close'} // Executes the exported function if this module has been called// directly.if !moduleparent moduleexports
Contributing
Contributions are very welcome, either on the documentation or on the code.
You may:
- report any issue you've encountered;
- fork and create a pull request.
License
ISC © Julien Fontanet