mirror of
https://github.com/sablierapp/sablier.git
synced 2026-01-03 19:44:59 +01:00
43 lines
1.3 KiB
Markdown
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));
|
|
```
|