@jadl/builders
Version:
Builders for JaDL
52 lines (51 loc) • 1.6 kB
JavaScript
"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;