feat(components): Add unsafe message component builders (#7387)

This commit is contained in:
Suneet Tipirneni
2022-02-04 14:29:41 -05:00
committed by GitHub
parent 04502ce702
commit 6b6222bf51
12 changed files with 566 additions and 430 deletions

View File

@@ -0,0 +1,42 @@
import type { ButtonStyle, APIMessageComponentEmoji, APIButtonComponent } from 'discord-api-types/v9';
import {
buttonLabelValidator,
buttonStyleValidator,
customIdValidator,
disabledValidator,
emojiValidator,
urlValidator,
validateRequiredButtonParameters,
} from '../Assertions';
import { UnsafeButtonComponent } from './UnsafeButton';
export class ButtonComponent extends UnsafeButtonComponent {
public override setStyle(style: ButtonStyle) {
return super.setStyle(buttonStyleValidator.parse(style));
}
public override setURL(url: string) {
return super.setURL(urlValidator.parse(url));
}
public override setCustomId(customId: string) {
return super.setCustomId(customIdValidator.parse(customId));
}
public override setEmoji(emoji: APIMessageComponentEmoji) {
return super.setEmoji(emojiValidator.parse(emoji));
}
public override setDisabled(disabled: boolean) {
return super.setDisabled(disabledValidator.parse(disabled));
}
public override setLabel(label: string) {
return super.setLabel(buttonLabelValidator.parse(label));
}
public override toJSON(): APIButtonComponent {
validateRequiredButtonParameters(this.style, this.label, this.emoji, this.custom_id, this.url);
return super.toJSON();
}
}