fix: add static method from in builders (#7990)

This commit is contained in:
Parbez
2022-06-05 22:03:19 +05:30
committed by GitHub
parent 5987dbe5cf
commit ad36c0be77
3 changed files with 29 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
'use strict';
const { ActionRowBuilder: BuildersActionRow, ComponentBuilder } = require('@discordjs/builders');
const { ActionRowBuilder: BuildersActionRow, ComponentBuilder, isJSONEncodable } = require('@discordjs/builders');
const Components = require('../util/Components');
const Transformers = require('../util/Transformers');
@@ -15,6 +15,19 @@ class ActionRowBuilder extends BuildersActionRow {
components: components?.map(c => (c instanceof ComponentBuilder ? c : Components.createComponentBuilder(c))),
});
}
/**
* Creates a new action row builder from JSON data
* @param {JSONEncodable<APIActionRowComponent<APIActionRowComponentTypes>>
* |APIActionRowComponent<APIActionRowComponentTypes>} other The other data
* @returns {ActionRowBuilder}
*/
static from(other) {
if (isJSONEncodable(other)) {
return new this(other.toJSON());
}
return new this(other);
}
}
module.exports = ActionRowBuilder;

View File

@@ -1,6 +1,6 @@
'use strict';
const { SelectMenuOptionBuilder: BuildersSelectMenuOption } = require('@discordjs/builders');
const { SelectMenuOptionBuilder: BuildersSelectMenuOption, isJSONEncodable } = require('@discordjs/builders');
const Transformers = require('../util/Transformers');
const Util = require('../util/Util');
@@ -28,6 +28,18 @@ class SelectMenuOptionBuilder extends BuildersSelectMenuOption {
}
return super.setEmoji(emoji);
}
/**
* Creates a new select menu option builder from JSON data
* @param {JSONEncodable<APISelectMenuOption>|APISelectMenuOption} other The other data
* @returns {SelectMenuOptionBuilder}
*/
static from(other) {
if (isJSONEncodable(other)) {
return new this(other.toJSON());
}
return new this(other);
}
}
module.exports = SelectMenuOptionBuilder;

View File

@@ -610,7 +610,8 @@ export class SelectMenuBuilder extends BuilderSelectMenuComponent {
export class SelectMenuOptionBuilder extends BuildersSelectMenuOption {
public constructor(data?: SelectMenuComponentOptionData | APISelectMenuOption);
public setEmoji(emoji: ComponentEmojiResolvable): this;
public override setEmoji(emoji: ComponentEmojiResolvable): this;
public static from(other: JSONEncodable<APISelectMenuOption> | APISelectMenuOption): SelectMenuOptionBuilder;
}
export class ModalBuilder extends BuildersModal {