* Convert command flags to params
(flags: ExtendedConstructedCommandOptions[])
| 169 | * Convert command flags to params |
| 170 | */ |
| 171 | function parseFlags(flags: ExtendedConstructedCommandOptions[]) { |
| 172 | const params: Param[] = []; |
| 173 | for (const flag of flags) { |
| 174 | const convedType = convFlagType(flag.type); |
| 175 | if (convedType < 0) throw new Error(`Invalid flag type on ${flag.name}`); |
| 176 | flag.type = convedType; |
| 177 | if ( |
| 178 | flag.type === Constants.ApplicationCommandOptionTypes.SUB_COMMAND || |
| 179 | flag.type === Constants.ApplicationCommandOptionTypes.SUB_COMMAND_GROUP |
| 180 | ) { |
| 181 | const sub = { name: flag.name, desc: flag.description, params: [] as Param[] }; |
| 182 | if (flag.options) sub.params = parseFlags(flag.options); |
| 183 | params.push(sub); |
| 184 | } else { |
| 185 | if (!flag.classic) continue; |
| 186 | params.push(`${flag.required ? "[" : "{"}${flag.name}${flag.required ? "]" : "}"}`); |
| 187 | } |
| 188 | } |
| 189 | return params; |
| 190 | } |
| 191 | |
| 192 | function extendFlags(flags: ExtendedConstructedCommandOptions[], name: string) { |
| 193 | const outFlags: ExtendedCommandOptions[] = []; |