Code Monkey home page Code Monkey logo

Comments (7)

bcoe avatar bcoe commented on September 2, 2024 2

@hisabimbola @antoniom unfortunately, I thought of a couple edge-cases where the logic for handling quoted strings would break the parse. Specifically if you had a boolean argument configured, followed by a string:

-f "hello world" in this scenario, if -f is configured as a boolean, you would end up with "hello world" in your _ -- which is unexpected behavior and would put the burden of more parsing on the consumer.

I think we should leave this behavior as is, i.e., eating ' and " -- this is the default behavior of the operating system:

 node test.js -f "world-hello"

will result in the following process.argv:

[ '/Users/benjamincoe/.nvm/versions/node/v7.1.0/bin/node',
  '/Users/benjamincoe/bcoe/yargs/test.js',
  '-f',
  'world-hello' ]

so even if we do add this parsing feature to yargs-parser the operating system will eat the quotes before they get to the parser.

perhaps start a conversation in our community slack and we can discuss other potential solutions to the problem -- perhaps you could JSON encode the data being passed in?

from yargs-parser.

antoniom avatar antoniom commented on September 2, 2024 2

@bcoe Since this is the default behavior from OS side, its OK for me. Feel free to revert it.

from yargs-parser.

bcoe avatar bcoe commented on September 2, 2024 1

@hisabimbola good catch; looks like somewhere in the parsing process we drop the ", this is definitely a bug. If you get a chance to dig into this yourself, would happily accept a patch. Either way, will definitely try to get this fixed soon.

from yargs-parser.

ilatypov avatar ilatypov commented on September 2, 2024

Passing an undefined variable as args to the parser (which happens a mistake in the parser's caller) throws a cryptic message, Should this create another issue?

TypeError: Cannot read property 'match' of undefined

from yargs-parser.

bcoe avatar bcoe commented on September 2, 2024

@ilatypov πŸ‘ yeah, would appreciate it if you create an issue specifically related to this.

from yargs-parser.

malhotraashna avatar malhotraashna commented on September 2, 2024

@bcoe Can I please ask you to again have a look at the case for allowing strings with quotes to be passed? It becomes very important to have it when string with spaces need to be passed.

Consider this scenario
./nodeFile.js -n "my node module"

If I don't use double-quotes with my string, then the OS itself will consider the first word as the argument value. But it doesn't strips them out itself. This comment explains it better.

I completely understand your concern when random string is passed after boolean arguments. But I guess passing string with spaces is a very common case too. And if possible, if the option has type specified as string, at least allow the double-quotes then?

from yargs-parser.

bcoe avatar bcoe commented on September 2, 2024

@malhotraashna please open a new issue with an example of a reproduction in test if possible.

from yargs-parser.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.