简体   繁体   中英

vorpal .validate throwing error

I have a vorpal command that looks like this: I am running version 1.9.5.

const vorpal = require('vorpal')()

vorpal
   .command('temp [dev]')
   .validate(function() {
     return false
   })
   .action(function() {
     ...
   })

vorpal.parse(process.argv)

And when i run pnt temp in my terminal I get this error thrown:

/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:169
          throw new Error(err);
          ^

Error: null
    at EventEmitter.<anonymous> (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:169:17)
    at callback (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:830:22)
    at /Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:961:7
    at EventEmitter._commandSetCallback (/Users/samm/Sites/pnt/node_modules/vorpal/dist/session.js:446:5)
    at EventEmitter.session.completeCommand (/Users/samm/Sites/pnt/node_modules/vorpal/dist/session.js:526:12)
    at onCompletion (/Users/samm/Sites/pnt/node_modules/vorpal/dist/session.js:456:10)
    at EventEmitter.session.execCommandSet (/Users/samm/Sites/p nt/node_modules/vorpal/dist/session.js:471:5)
    at EventEmitter.vorpal._exec (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:960:18)
    at EventEmitter.vorpal._execQueueItem (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:751:17)
    at EventEmitter.vorpal._queueHandler (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:735:10)

I admit that this is looking ugly, and they will probably fix this in future versions, but this looks like the correct behaviour.

Returning false or a string from .validate should throw an error, as this means that you don't accept the arguments. If you return a string that string will be shown to the user ( return "I don't want no scrubs." ).

So from the code that you posted this is the correct behaviour.

If you like the errormessage from .validate to be different, I recommend you post an issue on vorpal's issue tracker. (Even though I can see you have already done that).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM