Skip to content

Commit 30aa27b

Browse files
committed
add zod4 as a candidate
1 parent 366ccb7 commit 30aa27b

File tree

14 files changed

+518
-13
lines changed

14 files changed

+518
-13
lines changed

README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,15 @@ At [Softnetics Team](https://www.softnetics.tech/), we specialize in building so
3939

4040
## Library Version
4141

42-
| Library | Version |
43-
| ----------------------------------------------------- | ------------- |
44-
| [Zod](https://zod.dev/) | 3.24.1 |
45-
| [typebox](https://github.com/sinclairzx81/typebox) | 0.34.14 |
46-
| [arktype](https://arktype.io/) | 2.0.3 |
47-
| [valibot](https://valibot.dev/) | 1.0.0-beta.14 |
48-
| [yup](https://github.com/jquense/yup) | 1.6.1 |
49-
| [@effect/schema](https://github.com/Effect-TS/effect) | 0.75.5 |
42+
| Library | Version |
43+
| ----------------------------------------------------- | -------------------------- |
44+
| [Zod](https://zod.dev/) | 3.24.1 |
45+
| [Zod4](https://zod.dev/) | 4.0.0-beta.20250414T061543 |
46+
| [typebox](https://github.com/sinclairzx81/typebox) | 0.34.14 |
47+
| [arktype](https://arktype.io/) | 2.0.3 |
48+
| [valibot](https://valibot.dev/) | 1.0.0-beta.14 |
49+
| [yup](https://github.com/jquense/yup) | 1.6.1 |
50+
| [@effect/schema](https://github.com/Effect-TS/effect) | 0.75.5 |
5051

5152
# Test Cases Explanation
5253

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"typescript": "^5.4.5",
2525
"valibot": "1.0.0-beta.14",
2626
"yup": "^1.6.1",
27-
"zod": "^3.24.1"
27+
"zod": "^3.24.1",
28+
"zod4": "npm:[email protected]"
2829
},
2930
"devDependencies": {
3031
"@types/node": "^20.12.12",

pnpm-lock.yaml

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

reports/benchmark_plotter.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ def __init__(self, benchmarks: pd.DataFrame, dir: str):
2020
"valibot": "#9467bd",
2121
"yup": "#8c564b",
2222
"zod": "#e377c2",
23+
"zod4": "#ffd700",
2324
}
2425
self.metrics = [
2526
{"name": "Memory used", "unit": "Megabytes"},

samples/__generated__/complex.zod4.ts

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

samples/__generated__/extend.zod4.ts

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

samples/__generated__/simple.zod4.ts

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

samples/__generated__/union.zod4.ts

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

samples/custom/transform-simple.valibot.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as v from 'valibot'
22

3-
type TransformSimple_ModelInput = v.InferInput<typeof TransformSimple_Model>
4-
type TransformSimple_ModelOutput = v.InferOutput<typeof TransformSimple_Model>
3+
export type TransformSimple_ModelInput = v.InferInput<typeof TransformSimple_Model>
4+
export type TransformSimple_ModelOutput = v.InferOutput<typeof TransformSimple_Model>
55
export const TransformSimple_Model = v.pipe(
66
v.object({
77
a: v.number(),

samples/custom/transform-simple.zod.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as z from 'zod'
22

3-
type TransformSimple_ModelInput = z.input<typeof TransformSimple_Model>
4-
type TransformSimple_ModelOutput = z.output<typeof TransformSimple_Model>
3+
export type TransformSimple_ModelInput = z.input<typeof TransformSimple_Model>
4+
export type TransformSimple_ModelOutput = z.output<typeof TransformSimple_Model>
55
export const TransformSimple_Model = z
66
.object({
77
a: z.number(),

0 commit comments

Comments
 (0)