discord-bot-cli
Version:
An easy way to build a command-based discord bot with discord.js.
42 lines (41 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeCommand = void 0;
const array_1 = require("../utils/array");
/**
* Generate command data.
* @param name Name of the command.
* @param definition Definition of the command.
*/
function makeCommand(name, definition) {
const subs = {}; // eslint-disable-line @typescript-eslint/no-explicit-any
for (const key in definition.subs) {
subs[key] = makeCommand(key, definition.subs[key]);
}
for (const k in definition.args) {
const t = definition.args[k].type;
if (Array.isArray(t))
t.sort(sortParsableType);
}
for (const k in definition.flags) {
const t = definition.flags[k].type;
if (Array.isArray(t))
t.sort(sortParsableType);
}
if (definition.rest && Array.isArray(definition.rest.type))
definition.rest.type.sort(sortParsableType);
if (definition.clientPermissions)
definition.clientPermissions = array_1.distinct(definition.clientPermissions);
return {
def: definition,
name,
subs,
};
}
exports.makeCommand = makeCommand;
/** @internal */
const parsableOrderer = ["guild channel", "channel", "integer", "float", "string"];
/** @internal */
function sortParsableType(a, b) {
return parsableOrderer.indexOf(a) - parsableOrderer.indexOf(b);
}