Comments (2)
Hi, could you post an example so I can more accurately visualise what you're trying to achieve? Something like this?
$ example file1.txt file2.txt --terms-accepted true
It would be very useful if one was able to configure command-line-args so that a Boolean option can take it's value as an argument, just like a String option.
If a boolean flag option requires an argument then it's no longer a boolean flag option. Could you define an option which accepts an input argument and then process the result with a custom function? Something like..
const commandLineArgs = require('command-line-args')
function activeDecision (userInput) {
return userInput === 'true' || userInput === 'yes'
}
const optionDefinitions = [
{ name: 'accept-terms', type: activeDecision }
]
const options = commandLineArgs(optionDefinitions, { camelCase: true })
console.log('activeDecision result:', options.acceptTerms)
if (options.acceptTerms) {
console.log('Thanks for accepting the terms.')
} else {
console.log('Please accept the terms to continue.')
}
Example usage:
$ node active-decision.js
activeDecision result: undefined
Please accept the terms to continue.
$ node active-decision.js --accept-terms
activeDecision result: null
Please accept the terms to continue.
$ node active-decision.js --accept-terms no
activeDecision result: false
Please accept the terms to continue.
$ node active-decision.js --accept-terms yes
activeDecision result: true
Thanks for accepting the terms.
$ node active-decision.js --accept-terms true
activeDecision result: true
Thanks for accepting the terms.
from command-line-args.
This feature would also make it possible to have a Boolean option to be required. That is currently impossible.
The use case for having a required boolean could be that one want's to force the user to make an active decision, ie yes/no, true/false. But since the user can't actively choose 'false' then this can't be done currently.
from command-line-args.
Related Issues (20)
- Throw an exception if both `lazyMultiple` and `multiple` are set HOT 3
- Aliases should be nullable HOT 2
- Support for negated flags HOT 8
- recommended way to handle help? HOT 1
- Allow configuring arguments to be required HOT 3
- When trying to use a proxy such as jFrog's Artifactory, npm install fails HOT 2
- Missing argument should be error? HOT 1
- How to set a boolean value that defaults to true to false. HOT 1
- Multiple as a single type? HOT 2
- Jumping to [email protected] restrict node to >=14 HOT 2
- double hyphen is parsed as an argument when `defaultOption` is set
- Impossible to validate missing arguments for a flag when `multiple` is set HOT 1
- Parsing error of strings that starts with a digit HOT 1
- name containing dash (e.g. --num-max) supported? HOT 2
- Support concatenated .multiple for string arguments HOT 2
- Unclear behavior with defaultOption and more-than-one multiple args HOT 5
- docs for Usage guide generation is missing HOT 2
- What exactly is the purpose of defaultOption in multiple? HOT 1
- Support required options HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from command-line-args.