mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
* refactor: don't return builders from API data * Update packages/discord.js/src/structures/ActionRow.js Co-authored-by: Antonio Román <kyradiscord@gmail.com> * fix: circular dependency * fix: circular dependency pt.2 * chore: make requested changes * chore: bump dapi-types * chore: convert text input * chore: convert text input * feat: handle cases of unknown component types better * refactor: refactor modal to builder * feat: add #from for easy builder conversions * refactor: make requested changes * chore: make requested changes * style: fix linting error Co-authored-by: Antonio Román <kyradiscord@gmail.com> Co-authored-by: almeidx <almeidx@pm.me>
31 lines
973 B
TypeScript
31 lines
973 B
TypeScript
import type { APIMessageComponentEmoji, APISelectMenuOption } from 'discord-api-types/v9';
|
|
import {
|
|
defaultValidator,
|
|
emojiValidator,
|
|
labelValueValidator,
|
|
validateRequiredSelectMenuOptionParameters,
|
|
} from '../Assertions';
|
|
import { UnsafeSelectMenuOptionBuilder } from './UnsafeSelectMenuOption';
|
|
|
|
/**
|
|
* Represents a validated option within a select menu component
|
|
*/
|
|
export class SelectMenuOptionBuilder extends UnsafeSelectMenuOptionBuilder {
|
|
public override setDescription(description: string) {
|
|
return super.setDescription(labelValueValidator.parse(description));
|
|
}
|
|
|
|
public override setDefault(isDefault = true) {
|
|
return super.setDefault(defaultValidator.parse(isDefault));
|
|
}
|
|
|
|
public override setEmoji(emoji: APIMessageComponentEmoji) {
|
|
return super.setEmoji(emojiValidator.parse(emoji));
|
|
}
|
|
|
|
public override toJSON(): APISelectMenuOption {
|
|
validateRequiredSelectMenuOptionParameters(this.data.label, this.data.value);
|
|
return super.toJSON();
|
|
}
|
|
}
|