forked from countr/countr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.ts
85 lines (75 loc) · 2.8 KB
/
config.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import type { CacheWithLimitsOptions } from "discord.js";
import "dotenv/config";
// export config as a constant value
export default {
client: {
token: String(process.env["BOT_TOKEN"]),
caches: {
ApplicationCommandManager: 0,
BaseGuildEmojiManager: 0,
GuildEmojiManager: 0,
GuildMemberManager: { maxSize: 1, keepOverLimit: member => member.id === process.env["BOT_ID"] },
GuildBanManager: 0,
GuildInviteManager: 0,
GuildScheduledEventManager: 0,
GuildStickerManager: 0,
MessageManager: 0,
PresenceManager: 0,
ReactionManager: 0,
ReactionUserManager: 0,
StageInstanceManager: 0,
ThreadManager: 0,
ThreadMemberManager: 0,
UserManager: { maxSize: 0, keepOverLimit: user => user.id === process.env["BOT_ID"] },
VoiceStateManager: 0,
} as CacheWithLimitsOptions,
},
databaseUri: String(process.env["DATABASE_URI"]),
cluster: {
id: parseInt(process.env["CLUSTER"] ?? "", 10) || 0,
shards: process.env["SHARDS"]?.split(",").map(shardId => parseInt(shardId, 10)) ?? [0],
shardCount: parseInt(process.env["SHARD_COUNT"] ?? "", 10) || 1,
},
owner: process.env["OWNER"] ?? "",
admins: (process.env["ADMINS"] ?? "").split(","),
guild: process.env["GUILD"] ?? null,
api: {
port: parseInt(process.env["API_PORT"] ?? "", 10) || null,
numberOfProxies: parseInt(process.env["API_NUMBER_OF_PROXIES"] ?? "", 10) || 0,
},
websocket: {
port: parseInt(process.env["WEBSOCKET_INTERNAL_PORT"] ?? "9900", 10),
uri: process.env["WEBSOCKET_INTERNAL_URI"] ?? "ws://localhost:9900",
},
colors: {
primary: parseInt(process.env["COLOR_PRIMARY"] ?? "BD4632", 16),
success: parseInt(process.env["COLOR_SUCCESS"] ?? "43B581", 16),
error: parseInt(process.env["COLOR_ERROR"] ?? "F14747", 16),
warning: parseInt(process.env["COLOR_WARNING"] ?? "FAA619", 16),
info: parseInt(process.env["COLOR_INFO"] ?? "5865F2", 16),
},
integrations: {
...process.env["WEBHOOK_URL"] && { webhook: process.env["WEBHOOK_URL"] },
},
...process.env["ACCESS_ENABLED"] && {
access: {
interval: parseInt(process.env["ACCESS_INTERVAL"] ?? "", 10) || 30000,
webhookLog: process.env["ACCESS_WEBHOOK_LOG"],
},
},
...process.env["GITHUB_TOKEN"] && {
github: {
token: String(process.env["GITHUB_TOKEN"]),
tokenreset: {
repo: String(process.env["TOKENRESET_GITHUB_REPOSITORY"]),
committer: {
name: String(process.env["TOKENRESET_GITHUB_COMMITTER_NAME"]),
email: String(process.env["TOKENRESET_GITHUB_COMMITTER_EMAIL"]),
},
},
},
},
statusPage: "https://uptime.countr.xyz",
isPremium: process.env["IS_PREMIUM"] === "true",
hastebinLink: process.env["HASTEBIN_LINK"] ?? "https://hastebin.but-it-actually.works",
} as const;