flaggy
v1.5.0
Published
Zero dependency command flag generator from a simple javascript object
Downloads
15
Maintainers
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
You can install locally
npm i flaggy
Usage
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
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 so be sure to use standard commit format or PR won't be accepted
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'feat(scope): some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Simone Corsi - @im_simonecorsi
Acknowledgements
- malcommac - for inspiration after seeing his string concatenations
- jonschlinkert - for his dashify function