40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
A command parser initially made for quickly making discord bots, but works as a standalone parser too.
|
|
|
|
Your commands are expected to inherit from the Command class
|
|
|
|
**Example usage**
|
|
```js
|
|
|
|
const commands: Command[] = [
|
|
new Command({
|
|
name: 'ping',
|
|
options: [
|
|
{
|
|
name: 'respond', //
|
|
type: OptionType.BOOLEAN, // Boolean type expects the parser to have some kind of string -> boolean resolver, see the resolver interface for which methods are expected
|
|
required: true, // Will throw error if not provided
|
|
defaultValue: true, // The value that will be given back if no value is given, or if option is required but not provided
|
|
flag: true // The parser will look for the option in the "--respond value" form
|
|
}
|
|
]
|
|
})
|
|
]; // Command definitions
|
|
|
|
const parser = new Parser({commands, prefix: ''}); // Empty prefix
|
|
const parsed = await parser.parseMessage('ping --respond');
|
|
|
|
/**
|
|
* Parsed will be an object cotaining properties args, command, subcommand, and subcommandgroup
|
|
* the args property is an object of the given options mapped by their names, e.g.
|
|
* {
|
|
* respond: {
|
|
* ... properties,
|
|
* value: true
|
|
* }
|
|
* }
|
|
*
|
|
*/
|
|
|
|
```
|
|
|
|
Some of the option types have built-in parsers (e.g. numbers, strings), but others will require the resolver implementation, and in some cases CommandOption extensions. |