zod 3.12.0 → 3.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -5
- package/lib/ZodError.d.ts +0 -1
- package/lib/ZodError.js +0 -1
- package/lib/benchmarks/discriminatedUnion.d.ts +0 -1
- package/lib/benchmarks/discriminatedUnion.js +0 -1
- package/lib/benchmarks/index.d.ts +0 -1
- package/lib/benchmarks/index.js +0 -1
- package/lib/benchmarks/object.d.ts +0 -1
- package/lib/benchmarks/object.js +0 -1
- package/lib/benchmarks/string.d.ts +0 -1
- package/lib/benchmarks/string.js +0 -1
- package/lib/benchmarks/union.d.ts +0 -1
- package/lib/benchmarks/union.js +0 -1
- package/lib/external.d.ts +0 -1
- package/lib/external.js +0 -1
- package/lib/helpers/errorUtil.d.ts +0 -1
- package/lib/helpers/errorUtil.js +0 -1
- package/lib/helpers/parseUtil.d.ts +0 -1
- package/lib/helpers/parseUtil.js +0 -1
- package/lib/helpers/partialUtil.d.ts +0 -1
- package/lib/helpers/partialUtil.js +0 -1
- package/lib/helpers/typeAliases.d.ts +0 -1
- package/lib/helpers/typeAliases.js +0 -1
- package/lib/helpers/util.d.ts +0 -1
- package/lib/helpers/util.js +0 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.mjs +3416 -2
- package/lib/types.d.ts +18 -7
- package/lib/types.js +55 -6
- package/package.json +3 -2
- package/lib/ZodError.d.ts.map +0 -1
- package/lib/ZodError.js.map +0 -1
- package/lib/benchmarks/discriminatedUnion.d.ts.map +0 -1
- package/lib/benchmarks/discriminatedUnion.js.map +0 -1
- package/lib/benchmarks/index.d.ts.map +0 -1
- package/lib/benchmarks/index.js.map +0 -1
- package/lib/benchmarks/object.d.ts.map +0 -1
- package/lib/benchmarks/object.js.map +0 -1
- package/lib/benchmarks/string.d.ts.map +0 -1
- package/lib/benchmarks/string.js.map +0 -1
- package/lib/benchmarks/union.d.ts.map +0 -1
- package/lib/benchmarks/union.js.map +0 -1
- package/lib/external.d.ts.map +0 -1
- package/lib/external.js.map +0 -1
- package/lib/helpers/errorUtil.d.ts.map +0 -1
- package/lib/helpers/errorUtil.js.map +0 -1
- package/lib/helpers/parseUtil.d.ts.map +0 -1
- package/lib/helpers/parseUtil.js.map +0 -1
- package/lib/helpers/partialUtil.d.ts.map +0 -1
- package/lib/helpers/partialUtil.js.map +0 -1
- package/lib/helpers/typeAliases.d.ts.map +0 -1
- package/lib/helpers/typeAliases.js.map +0 -1
- package/lib/helpers/util.d.ts.map +0 -1
- package/lib/helpers/util.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/index.mjs.map +0 -1
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js.map +0 -1
package/README.md
CHANGED
|
@@ -43,6 +43,7 @@ These docs have been translated into [Chinese](./README_ZH.md).
|
|
|
43
43
|
- [Literals](#literals)
|
|
44
44
|
- [Strings](#strings)
|
|
45
45
|
- [Numbers](#numbers)
|
|
46
|
+
- [NaNs](#nans)
|
|
46
47
|
- [Booleans](#booleans)
|
|
47
48
|
- [Dates](#dates)
|
|
48
49
|
- [Zod enums](#zod-enums)
|
|
@@ -244,7 +245,7 @@ There are a growing number of tools that are built atop or support Zod natively!
|
|
|
244
245
|
### Form integrations
|
|
245
246
|
|
|
246
247
|
- [`react-hook-form`](https://github.com/react-hook-form/resolvers#zod): A first-party Zod resolver for React Hook Form
|
|
247
|
-
- [`formik`](https://github.com/robertLichtnow/zod-formik-adapter): A community-maintained Formik adapter for Zod
|
|
248
|
+
- [`zod-formik-adapter`](https://github.com/robertLichtnow/zod-formik-adapter): A community-maintained Formik adapter for Zod
|
|
248
249
|
|
|
249
250
|
# Basic usage
|
|
250
251
|
|
|
@@ -403,6 +404,17 @@ Optionally, you can pass in a second argument to provide a custom error message.
|
|
|
403
404
|
z.number().lte(5, { message: "this👏is👏too👏big" });
|
|
404
405
|
```
|
|
405
406
|
|
|
407
|
+
## NaNs
|
|
408
|
+
|
|
409
|
+
You can customize certain error messages when creating a nan schema.
|
|
410
|
+
|
|
411
|
+
```ts
|
|
412
|
+
const isNaN = z.nan({
|
|
413
|
+
required_error: "isNaN is required",
|
|
414
|
+
invalid_type_error: "isNaN must be not a number",
|
|
415
|
+
});
|
|
416
|
+
```
|
|
417
|
+
|
|
406
418
|
## Booleans
|
|
407
419
|
|
|
408
420
|
You can customize certain error messages when creating a boolean schema.
|
|
@@ -1066,8 +1078,8 @@ interface Category {
|
|
|
1066
1078
|
subcategories: Category[];
|
|
1067
1079
|
}
|
|
1068
1080
|
|
|
1069
|
-
// cast to z.
|
|
1070
|
-
const Category: z.
|
|
1081
|
+
// cast to z.ZodType<Category>
|
|
1082
|
+
const Category: z.ZodType<Category> = z.lazy(() =>
|
|
1071
1083
|
z.object({
|
|
1072
1084
|
name: z.string(),
|
|
1073
1085
|
subcategories: z.array(Category),
|
|
@@ -1104,7 +1116,7 @@ interface Category extends z.infer<typeof BaseCategory> {
|
|
|
1104
1116
|
|
|
1105
1117
|
// merge the base schema with
|
|
1106
1118
|
// a new Zod schema containing relations
|
|
1107
|
-
const Category: z.
|
|
1119
|
+
const Category: z.ZodType<Category> = BaseCategory.merge(
|
|
1108
1120
|
z.object({
|
|
1109
1121
|
subcategories: z.lazy(() => z.array(Category)),
|
|
1110
1122
|
})
|
|
@@ -1119,7 +1131,7 @@ If you want to validate any JSON value, you can use the snippet below.
|
|
|
1119
1131
|
type Literal = boolean | null | number | string;
|
|
1120
1132
|
type Json = Literal | { [key: string]: Json } | Json[];
|
|
1121
1133
|
const literalSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);
|
|
1122
|
-
const jsonSchema: z.
|
|
1134
|
+
const jsonSchema: z.ZodType<Json> = z.lazy(() =>
|
|
1123
1135
|
z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)])
|
|
1124
1136
|
);
|
|
1125
1137
|
|
package/lib/ZodError.d.ts
CHANGED
package/lib/ZodError.js
CHANGED
package/lib/benchmarks/index.js
CHANGED
package/lib/benchmarks/object.js
CHANGED
package/lib/benchmarks/string.js
CHANGED
package/lib/benchmarks/union.js
CHANGED
package/lib/external.d.ts
CHANGED
package/lib/external.js
CHANGED
package/lib/helpers/errorUtil.js
CHANGED
|
@@ -98,4 +98,3 @@ export declare const isAborted: (x: ParseReturnType<any>) => x is INVALID;
|
|
|
98
98
|
export declare const isDirty: <T>(x: ParseReturnType<T>) => x is OK<T> | DIRTY<T>;
|
|
99
99
|
export declare const isValid: <T>(x: ParseReturnType<T>) => x is OK<T> | DIRTY<T>;
|
|
100
100
|
export declare const isAsync: <T>(x: ParseReturnType<T>) => x is AsyncParseReturnType<T>;
|
|
101
|
-
//# sourceMappingURL=parseUtil.d.ts.map
|
package/lib/helpers/parseUtil.js
CHANGED
package/lib/helpers/util.d.ts
CHANGED
package/lib/helpers/util.js
CHANGED
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED