Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fluents/funwithflags
parse argument options
https://github.com/fluents/funwithflags
alias args arguments argv chainable cli flags fluent minimist options parser
Last synced: about 3 hours ago
JSON representation
parse argument options
- Host: GitHub
- URL: https://github.com/fluents/funwithflags
- Owner: fluents
- Created: 2017-04-28T00:56:29.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-04-29T03:10:45.000Z (over 7 years ago)
- Last Synced: 2024-08-10T11:17:48.980Z (3 months ago)
- Topics: alias, args, arguments, argv, chainable, cli, flags, fluent, minimist, options, parser
- Language: JavaScript
- Size: 31.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-fluents - funwithflags - - *Maintainer*: `James`[![Github](https://rawgit.com/d3viant0ne/awesome-webpack/master/media/github-square.svg)](https://github.com/aretecode)[![Twitter](https://rawgit.com/d3viant0ne/awesome-webpack/master/media/twitter-square.svg)](https://twitter.com/aretecode) (My Fluent Packages)
README
# 🚩 funwithflags
![funwithflags]
[![Build Status][travis-image]][travis-url]
[![NPM version][funwithflags-npm-image]][funwithflags-npm-url]
[![MIT License][license-image]][license-url]
[![fliphub][gitter-badge]][gitter-url]
[![fluents][fluents-image]][fluents-url]> parse argument options
This module is [minimist](https://github.com/substack/minimist) refactored as a fluent class ~125% faster.
[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist)
### [📘 examples](https://github.com/aretecode/funwithflags/wiki/examples)
``` js
var argv = require('funwithflags')(process.argv.slice(2));
console.log(argv);
```### [📦 install][funwithflags-npm-url]
```
yarn add funwithflags --dev
npm install funwithflags --save-dev
```### ⚙ options
| Name | Type | Description | ?Default | Example |
| ---- | ---- | ----------- | -------- | -------- |
| [string][examples-string] |string | Array<string>
| names to always treat as strings | `null` |
| [boolean][examples-boolean] |boolean | string | Array<string>
| always treat as booleans. if `true` will treat all double hyphenated arguments without equal signs. (e.g. affects `--foo`, not `-f` or `--foo=bar`) | `null` |
| [alias][examples-alias] | `Object` | an object mapping string names to strings or arrays of string names to use as aliases | `{}` |
| [default][examples-default] | `Object` | an object mapping string argument names to default values| `{}` |
| [`['--']`][examples-dd] | `boolean` | populate `argv._` with everything before the `--` and `argv['--']` with everything after the `--` | `null` |
| [stopEarly][examples-stop-early] | `boolean` | when true, populate `argv._` with everything after the first non-option| `null` |
| [unknown][examples-unknown] | `Function` | a function which is invoked with a command line parameter not defined in the `opts` configuration object. If the function returns `false`, the unknown option is not added to `argv` | `null` |
| [obj][examples-obj] | `boolean` | when true, returns the object instance of FunWithFlags | `null` |
| [vars][examples-vars] | `boolean` | when true, allows args without dashes to be used as flags | `null` |
| camel | `boolean` | when true, camelCases object keys on argv | `null` |
| underscore | `boolean` | when false, object is returned with no `_` (for looping over object keys or values or the like) | `null` |### [extending the class][examples-extending]
[examples-vars]: https://github.com/aretecode/funwithflags/wiki/examples#vars
[examples-obj]: https://github.com/aretecode/funwithflags/wiki/examples#obj
[examples-alias]: https://github.com/aretecode/funwithflags/wiki/examples#alias
[examples-default]: https://github.com/aretecode/funwithflags/wiki/examples#default
[examples-unknown]: https://github.com/aretecode/funwithflags/wiki/examples#unknown
[examples-string]: https://github.com/aretecode/funwithflags/wiki/examples#types
[examples-boolean]: https://github.com/aretecode/funwithflags/wiki/examples#types
[examples-dd]: https://github.com/aretecode/funwithflags/wiki/examples#double-dash
[examples-stop-early]: https://github.com/aretecode/funwithflags/wiki/examples#stop-early
[examples-extending]: https://github.com/aretecode/funwithflags/wiki/examples#extending
[examples-verbose]: https://github.com/aretecode/funwithflags/wiki/examples-verbose# [🔬 tests](./test)
- tests use [ava](https://github.com/avajs/ava)# [🏋️ benchmarks](./bench)
- benchmarks use [benchmark.js](benchmarkjs.com) with [bench-chain](https://github.com/aretecode/bench-chain)
#### [verbose][examples-verbose]
```jsvar unknown = []
// captures the unknown args, similar to how `vars` does
function unknownFn(arg) {
unknown.push(arg)
return true
}var opts = {
'default': {
'moose.box': 11,
'eh': true,
'igloo': false,
},
'alias': {
'moose.box': 'mooses.boxes',
'rain': 'british-columbia',
},
'boolean': ['eh', 'igloo'],
'string': ['country', 'nan', 'noflag'],
'vars': true,
'--': true,
'obj': true, // will return the instance
'unknown': unknownFn,
}var args = [
'--country=canada',// aliased to `rain` so it will have `rain: true, 'british-columbia': true`
'--british-columbia',// no value is default a true boolean
'--igloo',// dot notation
'--a.b=100',// using `string: 'nan'` we ensure this stays as a string
'--nan',
'99',// first flag is boolean (t: true)
// second flag assigned to following value (f: 555)
'-tf',
'555',// mooses and globbing are parsed only because `vars: true``
'mooses.boxes=moozes',
'globbing',
`"**/*"`,// after double dash
'--',
'dis-little-piggy',
'went-to-market',
]var obj = require('../')(args, opts)
const argv = obj.argv```
[fluents-image]: https://img.shields.io/badge/⛓-fluent-9659F7.svg
[fluents-url]: https://www.npmjs.com/package/flipchain[funwithflags1]: http://funwithflags.info/img/funwhitflagLogo.png
[funwithflags]: https://68.media.tumblr.com/02297f01d9716cede3879e7e139e0cfc/tumblr_inline_o7p6oyQ6cT1r18apd_500.gif[funwithflags-npm-image]: https://img.shields.io/npm/v/funwithflags.svg
[funwithflags-npm-url]: https://npmjs.org/package/funwithflags
[license-image]: http://img.shields.io/badge/license-MIT-blue.svg?style=flat
[license-url]: https://spdx.org/licenses/MIT
[gitter-badge]: https://img.shields.io/gitter/room/fliphub/pink.svg
[gitter-url]: https://gitter.im/fliphub/Lobby
[travis-url]: http://travis-ci.org/substack/minimist
[travis-image]: https://travis-ci.org/substack/minimist.png