Files
sablier/node_modules/argv-formatter/README.md

43 lines
1.3 KiB
Markdown

argv-formatter
==============
Bizarro [minimist](https://github.com/substack/minimist): transform an options object into into a `process.argv`-like array. Helpful for using `child_process` and passing complex arguments more easily.
## Setup
```bash
$ npm install --save argv-formatter
```
## API
#### `formatter.format(object)` -> `Array`
Accepts an `object` of containing options and arguments and returns an array of arguments.
* options with a value of `true` will be included with a flag only (`{R: true}` -> `['-R']`)
* options that are falsey will be removed
* all values will be stringified, (`{D: new Date(0)}` -> `['-D', 'Thurs Jan 1 1970...']`)
* arguments can be passed under the `_` key as a value or array of values
## Examples
To generate arguments to a `git log` command for printing the short hashes of commits that have changed our test files:
```js
var args = formatter.format({
_: './test/*',
format: '%h'
});
console.log(args.join(' ')); // --format=%h ./test/*
```
[git-log-parser](https://github.com/bendrucker/git-log-parser) uses this to spawn a `git` process:
```js
var spawn = require('child_process').spawn;
var formatter = require('argv-formatter');
var args = formatter.format(options);
var child = spawn('git', ['log'].concat(args));
```