Skip to content

Commit f7e374f

Browse files
authored
feat!: support both zod v3 and zod v4 (#366)
#310 - reworks the `ZodBuilder` -> `ZodV3Builder`, and uses the `/v3` sub-path import - introduces a `ZodV4Builder` efforts have been made to retain support for zod v3 at this stage, and make upgrading seamless, aside from updating the CLI parameter to indicate v3 vs v4. An alpha release will be published and used for regression testing against private projects before release. BREAKING CHANGE: default schema builder now `zod-v4`, pass `zod-v3` to continue using `zod@^3`
1 parent 20c7664 commit f7e374f

94 files changed

Lines changed: 10780 additions & 9843 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ jobs:
123123
strategy:
124124
matrix:
125125
node-version: *node-versions
126-
schema-builder: [joi, zod]
126+
schema-builder: [joi, zod-v3, zod-v4]
127127
steps:
128128
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
129129
with:
@@ -149,7 +149,7 @@ jobs:
149149
- run: pnpm integration:validate
150150

151151
- name: Check for uncommitted changes
152-
if: ${{ matrix.schema-builder == 'zod' }}
152+
if: ${{ matrix.schema-builder == 'zod-v4' }}
153153
run: ./scripts/assert-clean-working-directory.sh
154154

155155
e2e:
@@ -178,7 +178,10 @@ jobs:
178178
179179
- run: pnpm install --frozen-lockfile
180180

181-
- run: SCHEMA_BUILDER=zod pnpm e2e:generate
181+
- run: SCHEMA_BUILDER=zod-v3 pnpm e2e:generate
182+
- run: pnpm e2e:validate
183+
184+
- run: SCHEMA_BUILDER=zod-v4 pnpm e2e:generate
182185
- run: pnpm e2e:validate
183186

184187
- name: Check for uncommitted changes

e2e/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"axios": "^1.12.2",
2222
"express": "^5.1.0",
2323
"koa": "^3.0.1",
24-
"zod": "3.25.74"
24+
"zod": "^3.25.74"
2525
},
2626
"devDependencies": {
2727
"@jest/globals": "^30.2.0",

e2e/scripts/generate.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
set -e
44

5-
SCHEMA_BUILDER="${SCHEMA_BUILDER:-zod}"
5+
SCHEMA_BUILDER="${SCHEMA_BUILDER:-zod-v4}"
66

77
pnpm openapi-code-generator \
88
--input ./openapi.yaml \

e2e/src/generated/client/axios/client.ts

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/src/generated/client/axios/schemas.ts

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/src/generated/client/fetch/client.ts

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/src/generated/client/fetch/schemas.ts

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/src/generated/server/express/routes/escape-hatches.ts

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/src/generated/server/express/routes/media-types.ts

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/src/generated/server/express/routes/request-headers.ts

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)