mirror of
https://github.com/catppuccin/website.git
synced 2026-01-09 04:51:07 +08:00
31 lines
933 B
JavaScript
31 lines
933 B
JavaScript
// @ts-check
|
|
/**
|
|
* This file is included in `/next.config.mjs` which ensures the app isn't built with invalid env vars.
|
|
* It has to be a `.mjs`-file to be imported there.
|
|
*/
|
|
import { serverSchema } from "./schema.mjs";
|
|
import { env as clientEnv, formatErrors } from "./client.mjs";
|
|
|
|
const _serverEnv = serverSchema.safeParse(process.env);
|
|
|
|
if (_serverEnv.success === false) {
|
|
console.error(
|
|
"❌ Invalid environment variables:\n",
|
|
...formatErrors(_serverEnv.error.format())
|
|
);
|
|
throw new Error("Invalid environment variables");
|
|
}
|
|
|
|
/**
|
|
* Validate that server-side environment variables are not exposed to the client.
|
|
*/
|
|
for (let key of Object.keys(_serverEnv.data)) {
|
|
if (key.startsWith("NEXT_PUBLIC_")) {
|
|
console.warn("❌ You are exposing a server-side env-variable:", key);
|
|
|
|
throw new Error("You are exposing a server-side env-variable");
|
|
}
|
|
}
|
|
|
|
export const env = { ..._serverEnv.data, ...clientEnv };
|