-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.ts
40 lines (35 loc) · 967 Bytes
/
index.ts
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 { Client, ClientMode } from "@buape/carbon";
import type { ExecutionContext } from "@cloudflare/workers-types/2023-07-01";
import PingCommand from "./commands/ping";
import HelpCommand from "./commands/help";
import VcCommand from "./commands/ask-vc";
import RemindCommand from "./commands/remind";
type Env = {
CLIENT_ID: string;
PUBLIC_KEY: string;
DISCORD_TOKEN: string;
};
export default {
async fetch(request: Request, _env: Env, ctx: ExecutionContext) {
const client = new Client(
{
clientId: _env.CLIENT_ID,
publicKey: _env.PUBLIC_KEY,
token: _env.DISCORD_TOKEN,
mode: ClientMode.CloudflareWorkers,
},
[
new HelpCommand(),
new PingCommand(),
new VcCommand(),
new RemindCommand(),
],
);
if (request.url.endsWith("/deploy")) {
await client.deployCommands();
return new Response("Deployed commands");
}
const response = await client.router.fetch(request, ctx);
return response;
},
};