all repos — stealth-developers @ main

apps/bot/src/client.ts (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
import { createScoped, logger } from "$/logger";
import { Kitten } from "@purrkit/router";
import { Client, GatewayIntentBits, type Interaction } from "discord.js";

import { handleError } from "./lib";

export const client = new Client({
	intents: [
		GatewayIntentBits.DirectMessages,
		GatewayIntentBits.GuildMessages,
		GatewayIntentBits.Guilds,
		GatewayIntentBits.MessageContent,
	],
});

export const kitten = new Kitten(client, {
	onError: (error, interaction, ctx) => {
		// const errText = error instanceof Error ? error.message : "Unknown error";
		// logger.error({ ctx, interaction, error }, `there was an error executing command
		logger.error(
			{
				error,
				interaction,
				ctx,
			},
			"there was an error executing command",
		);
		handleError(interaction as Interaction, error);
	},
});

const kittenLogger = createScoped("kitten");

kitten.on("info", async (message, data) => {
	kittenLogger.info(data, message);
});
kitten.on("warn", async (message, data) => {
	kittenLogger.warn(data, message);
});
kitten.on("error", async (message, data) => {
	kittenLogger.error(data, message);
});
kitten.on("debug", async (message, data) => {
	kittenLogger.debug(data, message);
});