aboutsummaryrefslogtreecommitdiff
path: root/src/bot.ts
blob: 99d3ee3b27d6f818a21a88340b96cda665139603 (plain)
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
import { performance } from 'node:perf_hooks';
performance.mark('processStart');

console.log('Tanzanite is Starting');

import { init } from '#lib/utils/Logger.js';
// creates proxies on console.log and console.warn
// also starts a REPL session
init();

import { config } from '#config';
import { Sentry } from '#lib/common/Sentry.js';
import { TanzaniteClient } from '#lib/extensions/discord-akairo/TanzaniteClient.js';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';

const isDry = process.argv.includes('dry');

if (!isDry && config.credentials.sentryDsn !== null) {
	new Sentry(dirname(fileURLToPath(import.meta.url)) || process.cwd(), config);
}

TanzaniteClient.extendStructures();

const client = new TanzaniteClient(config);

// @ts-ignore: I don't want to add this to the global typings, this is only for debugging purposes
global.client = client;

if (!isDry) {
	await client.dbPreInit();
}

await client.init();

if (isDry) {
	process.exit(0);
} else {
	await client.start();
}