pkgs/config/src/schema.ts (view raw)
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 |
import z from "zod";
import { ENVIRONMENT, IS_PROD } from ".";
const discordSchema = z.object({
token: z.string(),
app_id: z.string(),
client_secret: z.string(),
guild: z.string(),
});
const dbSchema = z.object({
url: z.string(),
auth: z.string(),
});
const apiSchema = z.object({
port: z.number().default(3000),
});
const schema = z
.object({
discord: discordSchema,
db: dbSchema,
api: apiSchema,
})
.transform((config) => {
return {
...config,
environment: ENVIRONMENT,
isProd: IS_PROD,
};
});
export default schema;
export type Config = z.infer<typeof schema>;
|