-
Notifications
You must be signed in to change notification settings - Fork 59
/
RuntimeConfigurationSchema.ts
49 lines (44 loc) · 1.29 KB
/
RuntimeConfigurationSchema.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
import { z } from 'zod'
export const RuntimeConfigurationSchema = z
.object({
nameChecker: z
.object({
patterns: z.array(z.object({ regexp: z.string() })).default([]),
reportChannelId: z.string().default(''),
zalgoEnabled: z.boolean().default(true),
})
.default({}),
nameCleansing: z
.object({
enabled: z.boolean().default(false),
enabledCheckZalgo: z.boolean().default(false),
enabledCheckDehoisted: z.boolean().default(false),
enabledCheckExclamationMark: z.boolean().default(false),
enabledCheckBadName: z.boolean().default(false),
})
.default({}),
nominations: z
.object({
enabledRoles: z
.array(
z.object({
roleId: z.string(),
nominationsChannelId: z.string(),
}),
)
.default([]),
})
.default({}),
preventEmojiSpam: z
.object({
enabled: z.boolean().default(true),
enabledChannels: z.array(z.string()).default([]),
disabledChannels: z.array(z.string()).default([]),
bypassRoles: z.array(z.string()).default([]),
})
.default({}),
})
.default({})
export type RuntimeConfigurationSchema = z.infer<
typeof RuntimeConfigurationSchema
>