diff --git a/packages/next-utils/package.json b/packages/next-utils/package.json index 16bcbc3..6e43d3d 100644 --- a/packages/next-utils/package.json +++ b/packages/next-utils/package.json @@ -1,6 +1,6 @@ { "name": "@mintel/next-utils", - "version": "1.7.1", + "version": "1.7.2", "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 0836076..062ec52 100644 --- a/packages/next-utils/src/env.ts +++ b/packages/next-utils/src/env.ts @@ -50,7 +50,12 @@ export const mintelEnvSchema = { INTERNAL_DIRECTUS_URL: z.string().url().optional(), }; -export function validateMintelEnv(schemaExtension: T) { +export type MintelEnv> = + z.infer>; + +export function validateMintelEnv< + T extends z.ZodRawShape = Record, +>(schemaExtension: T = {} as T): MintelEnv { const fullSchema = z.object({ ...mintelEnvSchema, ...schemaExtension, @@ -67,8 +72,8 @@ export function validateMintelEnv(schemaExtension: T) { console.warn( "⚠️ Some environment variables are missing during build, but skipping strict validation.", ); - // Return process.env casted to ensure types match, even if data is missing during build - return process.env as unknown as z.infer; + // Return process.env casted to the full schema type to unblock builds + return process.env as unknown as MintelEnv; } console.error( @@ -78,5 +83,5 @@ export function validateMintelEnv(schemaExtension: T) { throw new Error("Invalid environment variables"); } - return result.data; + return result.data as MintelEnv; }