mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 20:43:30 +01:00
feat: PollBuilder (#10324)
* Add PollBuilder * Add exports * Update typings * Update validations * Use correct enum validator method * Fix assertion, formatting * Add tests * Fix assertion * Add JSDoc, format * Make requested changes * Remove unnecessary blank import * Add support for PollBuilder in mainlib discord.js * Add types, fix formatting * Correct typings & assertions for poll answer emojis * Improve typings readability * Add JSDoc typings for overrides * Add types for using PollBuilder in message payload * Add tests, allow passing Emoji instance to emoji option * Fix formatting * Update max poll duration * refactor: implement builders v2 pattern
This commit is contained in:
17
packages/builders/src/messages/poll/PollQuestion.ts
Normal file
17
packages/builders/src/messages/poll/PollQuestion.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import type { APIPollMedia } from 'discord-api-types/v10';
|
||||
import { validate } from '../../util/validation.js';
|
||||
import { pollQuestionPredicate } from './Assertions.js';
|
||||
import { PollMediaBuilder } from './PollMedia.js';
|
||||
|
||||
/**
|
||||
* A builder that creates API-compatible JSON data for a poll question.
|
||||
*/
|
||||
export class PollQuestionBuilder extends PollMediaBuilder {
|
||||
public override toJSON(validationOverride?: boolean): Omit<APIPollMedia, 'emoji'> {
|
||||
const clone = structuredClone(this.data);
|
||||
|
||||
validate(pollQuestionPredicate, clone, validationOverride);
|
||||
|
||||
return clone as Omit<APIPollMedia, 'emoji'>;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user