phase 2 and 3
This commit is contained in:
+18
-1
@@ -18,7 +18,24 @@ const EnvSchema = z.object({
|
||||
export type Env = z.infer<typeof EnvSchema>;
|
||||
|
||||
function load(): Env {
|
||||
const parsed = EnvSchema.safeParse(process.env);
|
||||
// During `next build` page-data collection the route modules are evaluated
|
||||
// without real secrets — fall back to safe placeholders so the build can
|
||||
// emit the module graph. Real runtime still re-validates at request time.
|
||||
const isBuildPhase =
|
||||
process.env.NEXT_PHASE === "phase-production-build" ||
|
||||
process.env.NEXT_BUILD === "true";
|
||||
|
||||
const source = isBuildPhase
|
||||
? {
|
||||
...process.env,
|
||||
DATABASE_URL: process.env.DATABASE_URL ?? "file:./data/build-placeholder.db",
|
||||
APP_SECRET:
|
||||
process.env.APP_SECRET ??
|
||||
"build-time-placeholder-secret-please-override-at-runtime",
|
||||
}
|
||||
: process.env;
|
||||
|
||||
const parsed = EnvSchema.safeParse(source);
|
||||
if (!parsed.success) {
|
||||
const issues = parsed.error.issues
|
||||
.map((i) => ` - ${i.path.join(".")}: ${i.message}`)
|
||||
|
||||
Reference in New Issue
Block a user