UNPKG

@jadl/builders

Version:
52 lines (51 loc) 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MessageBuilder = void 0; const v9_1 = require("discord-api-types/v9"); class MessageBuilder { constructor(message = {}) { this.message = message; } setMessage(msg) { this.message = 'render' in msg ? msg.render() : msg; return this; } addEmbed(...embedOrEmbeds) { const embeds = embedOrEmbeds .flat() .map((x) => ('render' in x ? x.render() : x)); this.message.embeds = embeds; return this; } addFiles(files) { if (!this.files) this.files = files.clone(); else { files .clone() .files.forEach((file) => this.files.add(file.name, file.buffer)); } return this; } addComponentRow(...componentOrComponents) { if (!this.message.components) this.message.components = []; this.message.components.push({ type: v9_1.ComponentType.ActionRow, components: componentOrComponents .flat() .map((x) => ('render' in x ? x.render() : x)) }); return this; } render() { if (this.files && this.files.files.length) { const formData = this.files.toFormData(); formData.append('payload_json', JSON.stringify(this.message)); return formData; } else return this.message; } } exports.MessageBuilder = MessageBuilder;