-
-
Notifications
You must be signed in to change notification settings - Fork 3.9k
/
SelectMenu.ts
39 lines (33 loc) · 1.13 KB
/
SelectMenu.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import type { APISelectMenuComponent } from 'discord-api-types/v9';
import {
customIdValidator,
disabledValidator,
minMaxValidator,
placeholderValidator,
validateRequiredSelectMenuParameters,
} from '../Assertions';
import { UnsafeSelectMenuComponent } from './UnsafeSelectMenu';
/**
* Represents a select menu component
*/
export class SelectMenuComponent extends UnsafeSelectMenuComponent {
public override setPlaceholder(placeholder: string) {
return super.setPlaceholder(placeholderValidator.parse(placeholder));
}
public override setMinValues(minValues: number) {
return super.setMinValues(minMaxValidator.parse(minValues));
}
public override setMaxValues(maxValues: number) {
return super.setMaxValues(minMaxValidator.parse(maxValues));
}
public override setCustomId(customId: string) {
return super.setCustomId(customIdValidator.parse(customId));
}
public override setDisabled(disabled: boolean) {
return super.setDisabled(disabledValidator.parse(disabled));
}
public override toJSON(): APISelectMenuComponent {
validateRequiredSelectMenuParameters(this.options, this.custom_id);
return super.toJSON();
}
}