diff --git a/.changeset/healthy-windows-melt.md b/.changeset/healthy-windows-melt.md new file mode 100644 index 00000000..a3e7a63d --- /dev/null +++ b/.changeset/healthy-windows-melt.md @@ -0,0 +1,5 @@ +--- +"@t3-oss/env-core": minor +--- + +update skipValidation flag to skip validation for extended presets diff --git a/docs/src/app/docs/customization/page.mdx b/docs/src/app/docs/customization/page.mdx index dde1f97a..5d5a4ef4 100644 --- a/docs/src/app/docs/customization/page.mdx +++ b/docs/src/app/docs/customization/page.mdx @@ -16,6 +16,8 @@ Skipping validation is not encouraged and will lead to your types and runtime va +When enabled, validation will be skipped for both your environment variables and any [extended presets](#extending-presets). + ```ts title="src/env.ts" import { createEnv } from "@t3-oss/env-core"; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index dcbd5d3b..05418a86 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -324,7 +324,16 @@ export function createEnv< } const skip = !!opts.skipValidation; - if (skip) return runtimeEnv as any; + if (skip) { + if (opts.extends) { + for (const preset of opts.extends) { + preset.skipValidation = true; + } + } + + // biome-ignore lint/suspicious/noExplicitAny: + return runtimeEnv as any; + } const _client = typeof opts.client === "object" ? opts.client : {}; const _server = typeof opts.server === "object" ? opts.server : {};