command-parser/tests/playground.js

47 lines
1.4 KiB
JavaScript

import { Parser, Command, OptionType } from '../build/esm/index.js';
const createCommand = new Command({
name: 'create',
options: [{
name: 'registration-code',
aliases: ['code'],
type: OptionType.SUB_COMMAND,
options: [{
name: 'amount',
flag: true,
type: OptionType.INTEGER,
defaultValue: 1,
valueOptional: true,
required: true
}]
}]
});
const botbanCommand = new Command({
name: 'botban',
options: [
{ name: 'users', type: OptionType.STRING, required: true },
{ name: 'service', choices: ['support', 'reports'], valueAsAlias: true, required: true }
]
});
const volumeCommand = new Command({
name: 'volume',
options: [
{
name: 'volume',
type: OptionType.INTEGER,
maximum: 100,
minimum: 0
},
]
});
const parser = new Parser({ commands: [createCommand, botbanCommand, volumeCommand], prefix: '', debug: true });
parser.on('debug', console.log)
console.log((await parser.parseMessage('create code -a 1')).args);
console.log((await parser.parseMessage('create code --help')).args);
// console.log(await parser.parseMessage('create --help'));
console.log((await parser.parseMessage('create code')).args);
console.log((await parser.parseMessage('botban support dingus')).args);
console.log((await parser.parseMessage('volume 500')).args);