import { createEnv } from "@t3-oss/env-nextjs" import { z } from "zod" const TWENTYFOUR_HOURS = 24 * 60 * 60 export const env = createEnv({ /** * Due to t3-env only checking typeof window === "undefined" * and Netlify running Deno, window is never "undefined" * https://github.com/t3-oss/t3-env/issues/154 */ isServer: typeof window === "undefined" || "Deno" in window, server: { API_BASEURL: z.string(), BOOKING_ENCRYPTION_KEY: z.string(), SAS_API_ENDPOINT: z.string().default(""), SAS_AUTH_ENDPOINT: z.string().default(""), SAS_OCP_APIM: z.string().default(""), SAS_AUTH_CLIENTID: z.string().default(""), CACHE_TIME_HOTELS: z.coerce .number() .default(TWENTYFOUR_HOURS) .transform((val) => process.env.CMS_ENVIRONMENT === "test" ? 5 * 60 : val ), CACHE_TIME_CITY_SEARCH: z.coerce .number() .default(10 * 60) .transform((val) => (process.env.CMS_ENVIRONMENT === "test" ? 60 : val)), NODE_ENV: z.enum(["development", "test", "production"]), CMS_ACCESS_TOKEN: z.string(), CMS_BRANCH: z.enum(["development", "production"]), CMS_URL: z.string(), CMS_PREVIEW_URL: z.string(), CMS_PREVIEW_TOKEN: z.string(), SENTRY_ENVIRONMENT: z.string().default("development"), PUBLIC_URL: z.string().default(""), PRINT_QUERY: z .string() .refine((s) => s === "true" || s === "false") .transform((s) => s === "true") .default("false"), SALESFORCE_PREFERENCE_BASE_URL: z.string(), }, emptyStringAsUndefined: true, runtimeEnv: { API_BASEURL: process.env.API_BASEURL, BOOKING_ENCRYPTION_KEY: process.env.BOOKING_ENCRYPTION_KEY, SAS_API_ENDPOINT: process.env.SAS_API_ENDPOINT, SAS_AUTH_ENDPOINT: process.env.SAS_AUTH_ENDPOINT, SAS_OCP_APIM: process.env.SAS_OCP_APIM, SAS_AUTH_CLIENTID: process.env.SAS_AUTH_CLIENTID, CACHE_TIME_HOTELS: process.env.CACHE_TIME_HOTELS, CACHE_TIME_CITY_SEARCH: process.env.CACHE_TIME_CITY_SEARCH, NODE_ENV: process.env.NODE_ENV, CMS_ACCESS_TOKEN: process.env.CMS_ACCESS_TOKEN, CMS_BRANCH: process.env.CMS_BRANCH, CMS_URL: process.env.CMS_URL, CMS_PREVIEW_URL: process.env.CMS_PREVIEW_URL, CMS_PREVIEW_TOKEN: process.env.CMS_PREVIEW_TOKEN, SENTRY_ENVIRONMENT: process.env.SENTRY_ENVIRONMENT, PUBLIC_URL: process.env.NEXT_PUBLIC_PUBLIC_URL, PRINT_QUERY: process.env.PRINT_QUERY, SALESFORCE_PREFERENCE_BASE_URL: process.env.SALESFORCE_PREFERENCE_BASE_URL, }, })