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; | |