Spaces:
Runtime error
Runtime error
| // @ts-check | |
| import { clientEnv, clientSchema } from "./schema.mjs"; | |
| const _clientEnv = clientSchema.safeParse(clientEnv); | |
| export const formatErrors = ( | |
| /** @type {import('zod').ZodFormattedError<Map<string,string>,string>} */ | |
| errors, | |
| ) => | |
| Object.entries(errors) | |
| .map(([name, value]) => { | |
| if (value && "_errors" in value) | |
| return `${name}: ${value._errors.join(", ")}\n`; | |
| }) | |
| .filter(Boolean); | |
| if (!_clientEnv.success) { | |
| console.error( | |
| "❌ Invalid environment variables:\n", | |
| ...formatErrors(_clientEnv.error.format()), | |
| ); | |
| throw new Error("Invalid environment variables"); | |
| } | |
| for (let key of Object.keys(_clientEnv.data)) { | |
| if (!key.startsWith("NEXT_PUBLIC_")) { | |
| console.warn( | |
| `❌ Invalid public environment variable name: ${key}. It must begin with 'NEXT_PUBLIC_'`, | |
| ); | |
| throw new Error("Invalid public environment variable name"); | |
| } | |
| } | |
| export const env = _clientEnv.data; | |