@jadl/builders
Version:
Builders for JaDL
65 lines (64 loc) • 2.2 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.parse = exports.parseMessage = exports.parseToMessageBuilder = exports.resolveString = void 0;
const Embed_1 = require("./builders/Embed");
const FileBuilder_1 = require("./builders/FileBuilder");
const MessageBuilder_1 = require("./builders/MessageBuilder");
const form_data_1 = __importDefault(require("form-data"));
function resolveString(data) {
if (typeof data === 'string')
return data;
if (Array.isArray(data))
return data.join(', ');
return String(data);
}
exports.resolveString = resolveString;
const isStringified = (val) => {
return [
'bigint',
'function',
'number',
'string',
'symbol',
'undefined'
].includes(typeof val);
};
function parseToMessageBuilder(input) {
let messageBuilder = input instanceof MessageBuilder_1.MessageBuilder ? input : new MessageBuilder_1.MessageBuilder();
if (input instanceof MessageBuilder_1.MessageBuilder) {
}
else if (input instanceof Embed_1.Embed) {
messageBuilder.addEmbed(input);
}
else if (input instanceof FileBuilder_1.FileBuilder) {
messageBuilder.addFiles(input);
}
else if (isStringified(input)) {
messageBuilder.setMessage({ content: resolveString(input) });
}
else {
messageBuilder.setMessage(input);
}
return messageBuilder;
}
exports.parseToMessageBuilder = parseToMessageBuilder;
function parseMessage(input) {
return parseToMessageBuilder(input).render();
}
exports.parseMessage = parseMessage;
function parse(input) {
const data = parseMessage(input);
return {
body: data instanceof form_data_1.default ? data : JSON.stringify(data),
passThroughBody: true,
headers: data instanceof form_data_1.default
? data.getHeaders()
: {
'Content-Type': 'application/json'
}
};
}
exports.parse = parse;