https://github.com/simonecorsi/flaggy
⛳️ Zero dependency command flag generator from a simple javascript object
https://github.com/simonecorsi/flaggy
argv command flag javascript nodejs npm opt options parser stringify
Last synced: about 4 hours ago
JSON representation
⛳️ Zero dependency command flag generator from a simple javascript object
- Host: GitHub
- URL: https://github.com/simonecorsi/flaggy
- Owner: simonecorsi
- License: mit
- Created: 2020-06-08T15:47:49.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-22T03:41:52.000Z (about 16 hours ago)
- Last Synced: 2025-04-22T06:07:45.679Z (about 14 hours ago)
- Topics: argv, command, flag, javascript, nodejs, npm, opt, options, parser, stringify
- Language: JavaScript
- Homepage: https://npmjs.com/package/flaggy
- Size: 6.81 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# flaggy

## About
This packages aim is to simplify programmatically generate flags to use in Unix-style command by declaring them with an object literal and turning them into an array or a string of usable flags.
**Why?**
- You exec commands and need to provide options easily;
- You want to avoid string concatenation to test easily;
- you don't want to have an headache refactoring when needed.## Table of contents
- [Installation](#installation)
- [Usage](#usage)
- [Arguments](#arguments)
- [Output sample](#output-sample)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)
- [Acknowledgements](#acknowledgements)## Installation
You can install locally
```sh
npm i flaggy
```## Usage
```js
const flaggy = require("flaggy");
flaggy({ d: true, path: "/some/path", verbose: true }); // ["--path", "/some/path", "--verbose", "-d"]
flaggy({ d: true, path: "/some/path", verbose: true }, true); // "--path /some/path --verbose" -d
```### Arguments
| parameter | type | description | default |
| --------- | ------- | --------------------------------------------------------------------------- | ------- |
| [0] | Object | Object with the value to stringify as flags | null |
| [1] | Boolean | Stringify result? if false returns argv array else return stringified flags | false |### Output sample
```js
const fstring = flaggy(
{
t: true,
number: 1,
boolean: true,
s: "short",
string: "hi",
iCantGetWhy: "This is so long",
weHaveListToo: ["one", "long value"],
},
true
);
// -t --number 1 --boolean -s short --string hi --i-cant-get-why="This is so long" --we-have-list-too one --we-have-list-too="long value"
```## Contributing
Project is pretty simple and straight forward for what is my needs, but if you have any idea you're welcome.
This projects uses [commitizen](https://github.com/commitizen/cz-cli) so be sure to use standard commit format or PR won't be accepted
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'feat(scope): some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## License
Distributed under the MIT License. See `LICENSE` for more information.
## Contact
Simone Corsi - [@im_simonecorsi](https://twitter.com/im_simonecorsi)
## Acknowledgements
- [malcommac](https://github.com/malcommac) - for inspiration after seeing his string concatenations
- [jonschlinkert](https://github.com/jonschlinkert) - for his [dashify](https://github.com/jonschlinkert/dashify) function