leo / args

Toolkit for building command line interfaces
https://npmjs.com/args
MIT License
461 stars 30 forks source link

Options' defaults not used when using command with init function #138

Open barbu110 opened 5 years ago

barbu110 commented 5 years ago

Hello!

First of all, I'd like to say I really like args. It has a few things it's not doing correctly right now, but it's going on a great path.

I created an executable, let's call it myexec:

args.options([{
  name: 'target',
  default: 'dev',
  description: '...',
}]);

args.command('cmd', 'description', (name, sub, options) => {
  console.log(options);
});

Running it goes as follows:

$ ./myexec cmd
{}

The options object should contain the default value of target and it's missing. I think this is a bad problem unless a simple workaround exists. What do you think?

ntwcklng commented 5 years ago

Hey @barbu110, the correct property for defining a default value is defaultValue. You've used default. Can you try again and tell us if this fixed your issue?

ntwcklng commented 5 years ago

ping @barbu110

RickeyWard commented 2 years ago

even though his example is wrong, he's correct. This though seems to be by design

  // If sub command is defined, run it
  if (defined) {
    this.runCommand(defined, optionList)
    return {}
  }

  // Hand back list of options
  return optionList