muud
A simple upgrade to mingy to support command aliases, promise, and array returns. For basic usage, you can see that repository.
It also strips out almost everything but Parsers and Validators. No Shell, no web server, no clients.
Install
npm i muud
Differences From Mingy
There are a few, mostly syntactical:
args
andenv
are no longer passed in separately to thelogic
functions. You can find them as a single object on thelogic
function now.- You can return any value from the parser
logic
function, not just strings. logic
functions can now beasync
.logic
functions now always return an array. You can return multiple messages back to the user in order this way, without any hacky workarounds.Command#set()
has been split out intosetSyntax
andsetLogic
.- You can pass an
Env
intoParser#parse
to set a scopedEnv
for that specific run of the parser. - You can now have multiple prefix aliases when setting command syntax, to avoid redundancy:
setSyntax(['go', 'travel'], '<string:direction>')
. This would expand intogo <string:direction>
andtravel <string:direction>
.
Usage
; ; parser.setEnv'test', 1; parser.addCommand'hello' .setSyntax .setLogic; parser.addCommand'go' .setSyntax .setLogic; parser.addCommand'zoop' .setSyntax, 'suffix' .setLogic; ;console.logres1; // ['Hello!'] ;console.logres2; // ['Hello2!', 'Yo!', 1] ;console.logres3; // ['Went', 'north'] ;console.logres4; // ['zoop', 1] ;console.logres5; // ['zoop', 2]
Contributing
Feel free to contribute features by sending a pull request.