dthree / vorpal

Node's framework for interactive CLIs
http://vorpal.js.org
MIT License
5.64k stars 280 forks source link

Pipe crashes Vorpal #145

Open vanita5 opened 8 years ago

vanita5 commented 8 years ago

I have some issues with pipes in birdknife.

I am using .catch to interpret non-command input as status updates. I had some issues with quote and equal chars before, but I was able to fix this with a custom command parser.

Now, this isn't possible with pipes (|). They are interpreted by Vorpal before being passed to the parser, so I am not able to bypass this behavior. Any chance I can disable the interpretation of pipes? I don't need them at all.

Also, there's a bug: A single pipe as the input crashes the application:

birdknife [139]> |

E:\localnet\birdknife\node_modules\vorpal\node_modules\inquirer\node_modules\rx-lite\rx.lite.js:75
    throw e;
          ^
TypeError: Cannot read property 'join' of undefined
    at CommandInstance.<anonymous> (E:\localnet\birdknife\birdknife.js:446:32)
    at EventEmitter.session.execCommandSet (E:\localnet\birdknife\node_modules\vorpal\dist\session.js:470:20)
    at EventEmitter.vorpal._exec (E:\localnet\birdknife\node_modules\vorpal\dist\vorpal.js:956:18)
    at EventEmitter.vorpal._execQueueItem (E:\localnet\birdknife\node_modules\vorpal\dist\vorpal.js:747:17)
    at EventEmitter.vorpal._queueHandler (E:\localnet\birdknife\node_modules\vorpal\dist\vorpal.js:731:10)
    at EventEmitter.vorpal.exec (E:\localnet\birdknife\node_modules\vorpal\dist\vorpal.js:678:10)
    at E:\localnet\birdknife\node_modules\vorpal\dist\vorpal.js:621:10
    at null.completed (E:\localnet\birdknife\node_modules\vorpal\dist\ui.js:215:13)
    at PromptUI.onCompletion (E:\localnet\birdknife\node_modules\vorpal\node_modules\inquirer\lib\ui\prompt.js:57:10)
    at AnonymousObserver.Rx.AnonymousObserver.AnonymousObserver.completed (E:\localnet\birdknife\node_modules\vorpal\node_modules\inquirer\node_modules\rx-lite\rx.lite.js:1550:12)
    at AnonymousObserver.Rx.internals.AbstractObserver.AbstractObserver.onCompleted (E:\localnet\birdknife\node_modules\vorpal\node_modules\inquirer\node_modules\rx-lite\rx.lite.js:1489:14)
    at Subject.Rx.Subject.addProperties.onCompleted (E:\localnet\birdknife\node_modules\vorpal\node_modules\inquirer\node_modules\rx-lite\rx.lite.js:5871:19)
    at Subject.tryCatcher (E:\localnet\birdknife\node_modules\vorpal\node_modules\inquirer\node_modules\rx-lite\rx.lite.js:63:31)
    at AutoDetachObserverPrototype.completed (E:\localnet\birdknife\node_modules\vorpal\node_modules\inquirer\node_modules\rx-lite\rx.lite.js:5796:56)
    at AutoDetachObserver.Rx.internals.AbstractObserver.AbstractObserver.onCompleted (E:\localnet\birdknife\node_modules\vorpal\node_modules\inquirer\node_modules\rx-lite\rx.lite.js:1489:14)
    at AutoDetachObserver.tryCatcher (E:\localnet\birdknife\node_modules\vorpal\node_modules\inquirer\node_modules\rx-lite\rx.lite.js:63:31)