From 858c7bbc3911b78270442e4e17e151a4b6e7a603 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Wed, 11 Feb 2026 00:04:14 +0100 Subject: [PATCH] fix(next-utils): use z.extend() for robust type inference in validateMintelEnv --- packages/next-utils/package.json | 2 +- packages/next-utils/src/env.ts | 14 ++++---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/packages/next-utils/package.json b/packages/next-utils/package.json index 6e43d3d..62fcb4f 100644 --- a/packages/next-utils/package.json +++ b/packages/next-utils/package.json @@ -1,6 +1,6 @@ { "name": "@mintel/next-utils", - "version": "1.7.2", + "version": "1.7.3", "publishConfig": { "access": "public", "registry": "https://npm.infra.mintel.me" diff --git a/packages/next-utils/src/env.ts b/packages/next-utils/src/env.ts index 062ec52..cf102cb 100644 --- a/packages/next-utils/src/env.ts +++ b/packages/next-utils/src/env.ts @@ -50,16 +50,10 @@ export const mintelEnvSchema = { INTERNAL_DIRECTUS_URL: z.string().url().optional(), }; -export type MintelEnv> = - z.infer>; - export function validateMintelEnv< T extends z.ZodRawShape = Record, ->(schemaExtension: T = {} as T): MintelEnv { - const fullSchema = z.object({ - ...mintelEnvSchema, - ...schemaExtension, - }); +>(schemaExtension: T = {} as T) { + const fullSchema = z.object(mintelEnvSchema).extend(schemaExtension); const isBuildTime = process.env.NEXT_PHASE === "phase-production-build" || @@ -73,7 +67,7 @@ export function validateMintelEnv< "⚠️ Some environment variables are missing during build, but skipping strict validation.", ); // Return process.env casted to the full schema type to unblock builds - return process.env as unknown as MintelEnv; + return process.env as unknown as z.infer; } console.error( @@ -83,5 +77,5 @@ export function validateMintelEnv< throw new Error("Invalid environment variables"); } - return result.data as MintelEnv; + return result.data; }