-
Notifications
You must be signed in to change notification settings - Fork 90
Expand file tree
/
Copy pathmyzod.ts
More file actions
56 lines (50 loc) · 1.15 KB
/
Copy pathmyzod.ts
File metadata and controls
56 lines (50 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import myzod from 'myzod';
import { addCase, createCase } from '../benchmarks';
createCase('myzod', 'parseSafe', () => {
const dataType = myzod.object(
{
number: myzod.number(),
negNumber: myzod.number(),
maxNumber: myzod.number(),
string: myzod.string(),
longString: myzod.string(),
boolean: myzod.boolean(),
deeplyNested: myzod.object(
{
foo: myzod.string(),
num: myzod.number(),
bool: myzod.boolean(),
},
{
allowUnknown: true,
},
),
},
{
allowUnknown: true,
},
);
return data => {
return dataType.parse(data);
};
});
const dataTypeStrict = myzod.object({
number: myzod.number(),
negNumber: myzod.number(),
maxNumber: myzod.number(),
string: myzod.string(),
longString: myzod.string(),
boolean: myzod.boolean(),
deeplyNested: myzod.object({
foo: myzod.string(),
num: myzod.number(),
bool: myzod.boolean(),
}),
});
addCase('myzod', 'parseStrict', data => {
return dataTypeStrict.parse(data);
});
addCase('myzod', 'assertStrict', data => {
dataTypeStrict.parse(data);
return true;
});