Files
lbf-bot/apps/discord-bot/src/env.ts
2025-12-05 17:11:06 +01:00

42 lines
1.1 KiB
TypeScript

import { z } from "zod";
import "dotenv/config";
const schema = z.object({
DISCORD_BOT_TOKEN: z.string(),
DISCORD_MENTION: z.string(),
DISCORD_REWARDS_GIVER: z.string(),
DISCORD_REWARDS_CHANNEL: z.string(),
// TODO: remove and compose from staff role id
DISCORD_ADMIN_MENTION: z.string(),
// TODO: rename to reward ask channel or smth
DISCORD_ADMIN_CHANNEL: z.string(),
DISCORD_TRACKING_CHANNEL: z.string(),
DISCORD_STAFF_ROLE_ID: z.string(),
WOV_API_KEY: z.string(),
WOV_CLAN_ID: z.string(),
WOV_FETCH_INTERVAL: z.coerce.number(),
WOV_TRACKING_INTERVAL: z.coerce.number(),
QUEST_REWARDS: z
.string()
.transform((x) => x.split(",").map((x) => x.trim()))
.optional(),
QUEST_EXCLUDE: z
.string()
.transform((x) => x.split(",").map((x) => x.trim()))
.optional()
.default(""),
});
const result = schema.safeParse(process.env);
if (!result.success) {
console.log("❌ Invalid environments variables:");
console.log(
result.error.errors
.map((x) => `- ${x.path.join(".")}: ${x.message}`)
.join("\n"),
);
process.exit(1);
}
export const env = result.data;