discord-bot-cli
Version:
An easy way to build a command-based discord bot with discord.js.
30 lines (29 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseArgs = void 0;
const parseValue_1 = require("./parseValue");
const CommandResult_1 = require("../../models/CommandResult");
const CommandResultError_1 = require("../../models/errors/CommandResultError");
/** @internal */
function parseArgs(message, inputArguments, argDefinitions) {
const args = [...inputArguments];
const argValues = new Map();
for (const [name, def] of argDefinitions) {
let value;
if (args.length === 0) {
if (!def.optional)
throw new CommandResultError_1.CommandResultError(CommandResult_1.CommandResultUtils.failParseArgMissing(def));
value = def.defaultValue;
}
else {
const val = args.shift();
const parsed = parseValue_1.parseValue(def, message, val);
if (parsed.value === undefined)
throw new CommandResultError_1.CommandResultError(CommandResult_1.CommandResultUtils.failParseArgInvalid(def, val), parsed.message);
value = parsed.value;
}
argValues.set(name, value);
}
return { argValues, rest: args };
}
exports.parseArgs = parseArgs;