mirror of
https://github.com/arthur-pbty/flint.git
synced 2026-08-01 20:29:03 +02:00
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { config as loadEnv } from "dotenv";
|
|
import { z } from "zod";
|
|
|
|
import { SUPPORTED_LANGS } from "../types/command.js";
|
|
|
|
loadEnv();
|
|
|
|
const envSchema = z.object({
|
|
DISCORD_TOKEN: z.string().min(1, "DISCORD_TOKEN is required"),
|
|
DISCORD_CLIENT_ID: z.string().min(1, "DISCORD_CLIENT_ID is required"),
|
|
DATABASE_URL: z
|
|
.string()
|
|
.trim()
|
|
.min(1, "DATABASE_URL is required")
|
|
.url("DATABASE_URL must be a valid URL"),
|
|
DATABASE_SSL: z
|
|
.string()
|
|
.optional()
|
|
.default("false")
|
|
.transform((value) => value.toLowerCase() === "true"),
|
|
PRESENCE_STREAM_URL: z
|
|
.string()
|
|
.url("PRESENCE_STREAM_URL must be a valid URL")
|
|
.optional()
|
|
.default("https://twitch.tv/discord"),
|
|
PREFIX: z.string().min(1).max(5).default("+"),
|
|
DEFAULT_LANG: z.enum(SUPPORTED_LANGS).default("en"),
|
|
DEV_GUILD_ID: z.string().optional().transform((value) => value && value.length > 0 ? value : undefined),
|
|
AUTO_DEPLOY_SLASH: z
|
|
.string()
|
|
.optional()
|
|
.default("false")
|
|
.transform((value) => value.toLowerCase() === "true"),
|
|
});
|
|
|
|
export const env = envSchema.parse(process.env);
|