UNPKG

ghom-eval

Version:
37 lines (36 loc) 1.37 kB
import discord from "discord.js"; import { evaluate as _ } from "ghom-eval"; import { code } from "./utils.js"; export async function evaluate(input, options, embedPresets = { success: new discord.EmbedBuilder().setColor("#00FF00"), error: new discord.EmbedBuilder().setColor("#FF0000"), }) { const evaluated = await _(input, { lang: options?.lang, ctx: options?.ctx, ctxName: options?.ctx ? `{ ${Object.keys(options.ctx).join(", ")} }` : undefined, }); if (options?.muted) { return embedPresets.success.setDescription(`Successfully evaluated in ${evaluated.duration}ms`); } else { const embed = embedPresets[evaluated.failed ? "error" : "success"] .setTitle(`Result ${evaluated.failed ? "(failed)" : ""}`) .setDescription(await code.stringify({ content: evaluated.output.slice(0, 2000).replace(/```/g, "\\`\\`\\`"), lang: "js", })); if (options?.verbose) embed.addFields({ name: "Information", value: await code.stringify({ content: `type: ${evaluated.type}\nclass: ${evaluated.class}\nduration: ${evaluated.duration}ms`, lang: "yaml", }), inline: true, }); return embed; } }