UNPKG

discord-bot-cli

Version:

An easy way to build a command-based discord bot with discord.js.

30 lines (29 loc) 1.23 kB
"use strict"; 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;