39 lines
1.6 KiB
TypeScript
39 lines
1.6 KiB
TypeScript
import {createEnv} from "@t3-oss/env-nextjs";
|
|
import {z} from "zod";
|
|
|
|
export const env = createEnv({
|
|
client: {
|
|
NEXT_PUBLIC_APP_ENV: z.enum(["production", "preview", "development"]).default("development"),
|
|
NEXT_PUBLIC_CDN_URL: z.url().min(1),
|
|
NEXT_PUBLIC_POSTHOG_HOST: z.url().min(1).optional(),
|
|
NEXT_PUBLIC_POSTHOG_KEY: z.string().min(1).optional(),
|
|
NEXT_PUBLIC_PRO_API_URL: z.url().min(1).optional(),
|
|
NEXT_PUBLIC_PRO_URL: z.url().min(1).optional(),
|
|
NEXT_PUBLIC_SHOW_PRE_SALE_BANNER: z
|
|
.enum(["true", "false"])
|
|
.default("false")
|
|
.transform((v) => v === "true"),
|
|
},
|
|
runtimeEnv: {
|
|
FEATUREBASE_API_ENDPOINT: process.env["FEATUREBASE_API_ENDPOINT"],
|
|
FEATUREBASE_API_KEY: process.env["FEATUREBASE_API_KEY"],
|
|
LOOPS_API_ENDPOINT: process.env["LOOPS_API_ENDPOINT"],
|
|
LOOPS_API_KEY: process.env["LOOPS_API_KEY"],
|
|
NEXT_PUBLIC_APP_ENV: process.env["NEXT_PUBLIC_APP_ENV"],
|
|
NEXT_PUBLIC_CDN_URL: process.env["NEXT_PUBLIC_CDN_URL"],
|
|
NEXT_PUBLIC_POSTHOG_HOST: process.env["NEXT_PUBLIC_POSTHOG_HOST"],
|
|
NEXT_PUBLIC_POSTHOG_KEY: process.env["NEXT_PUBLIC_POSTHOG_KEY"],
|
|
NEXT_PUBLIC_PRO_API_URL: process.env["NEXT_PUBLIC_PRO_API_URL"],
|
|
NEXT_PUBLIC_PRO_URL: process.env["NEXT_PUBLIC_PRO_URL"],
|
|
NEXT_PUBLIC_SHOW_PRE_SALE_BANNER: process.env["NEXT_PUBLIC_SHOW_PRE_SALE_BANNER"],
|
|
NODE_ENV: process.env["NODE_ENV"],
|
|
},
|
|
server: {
|
|
FEATUREBASE_API_ENDPOINT: z.string().min(1),
|
|
FEATUREBASE_API_KEY: z.string().min(1),
|
|
LOOPS_API_ENDPOINT: z.string().min(1),
|
|
LOOPS_API_KEY: z.string().min(1),
|
|
NODE_ENV: z.enum(["development", "production"]).default("development"),
|
|
},
|
|
});
|