fix: avoid deep Deno Zod types#1980
Open
HAYDEN-OAI wants to merge 1 commit into
Open
Conversation
Resolves #984
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
zodResponseFormat()generic constraint to the small Zod surface the helper actually needs_outputtypeWhy
Issue #984 reports that
deno checkcan fail with TS2589 or exhaust the JavaScript heap when callingzodResponseFormat(). The previous public signature asked Deno to structurally compare the supplied schema against the complete Zod v3 and v4 type graphs before inferring the output type.Impact
Deno no longer needs to expand those full Zod graphs at the call site. The helper still accepts Zod v3 and v4 schemas, produces the same JSON Schema at runtime, and preserves the inferred parsed result through
_output.Validation
pnpm exec jest tests/helpers/zod.test.ts --runInBandpnpm exec tsc --noEmitpnpm run lintResolves #984