diff options
Diffstat (limited to 'node_modules/discord.js/src/structures/ModalBuilder.js')
-rw-r--r-- | node_modules/discord.js/src/structures/ModalBuilder.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/node_modules/discord.js/src/structures/ModalBuilder.js b/node_modules/discord.js/src/structures/ModalBuilder.js new file mode 100644 index 0000000..535b4a5 --- /dev/null +++ b/node_modules/discord.js/src/structures/ModalBuilder.js @@ -0,0 +1,34 @@ +'use strict'; + +const { ModalBuilder: BuildersModal, ComponentBuilder } = require('@discordjs/builders'); +const { isJSONEncodable } = require('@discordjs/util'); +const { toSnakeCase } = require('../util/Transformers'); + +/** + * Represents a modal builder. + * @extends {BuildersModal} + */ +class ModalBuilder extends BuildersModal { + constructor({ components, ...data } = {}) { + super({ + ...toSnakeCase(data), + components: components?.map(c => (c instanceof ComponentBuilder ? c : toSnakeCase(c))), + }); + } + + /** + * Creates a new modal builder from JSON data + * @param {ModalBuilder|APIModalComponent} other The other data + * @returns {ModalBuilder} + */ + static from(other) { + return new this(isJSONEncodable(other) ? other.toJSON() : other); + } +} + +module.exports = ModalBuilder; + +/** + * @external BuildersModal + * @see {@link https://discord.js.org/docs/packages/builders/stable/ModalBuilder:Class} + */ |