oclif / parser

arg and flag parser for oclif
MIT License
24 stars 23 forks source link

Can't pass an empty string flag #55

Open dkundel opened 5 years ago

dkundel commented 5 years ago

Hi there,

I have an issue that faced in https://github.com/twilio-labs/plugin-serverless where present string flags without any value don't work.

For example, this doesn't work:

twilio serverless:start --inspect

This works however:

twilio serverless:start --inspect=""

The problem seems to be here because if nothing else is being passed the last value will be undefined. If something else is passed it will be turned into the value.

For now the workaround for me is to add an empty string to the back of argv but this doesn't seem to be a good solution.

Update: in fact this doesn't even work. The fix instead is a documentation one for now to mention to pass an empty string

xavdid commented 5 years ago

This seems like intended behavior, no? If it's a boolean flag, it should have no value. if it's a string flag, it should have a value. I'm not sure they support a flag that acts as both.

dkundel commented 5 years ago

They currently don't support one but it's common behavior. Example from Node.js: https://nodejs.org/api/cli.html#cli_inspect_host_port

In yargs the behavior is the following for string flags: