Generated-output differences

quicktype output changed between the PR base and tested PR merge revisions.
← Back to the pull request
316test cases
1,192files differ
1,191modified
1new
0deleted
5,816changed lines
+415 −5,401insertions / deletions
Base d7cb7d83cad4a2ef8adfc4d67445a8a0e162bc88 · PR merge 6a461dde1b5c186f446220b948d0032c2d49b408 · Head 0a4bddc20d3bcda3ee742cb046dd7b2a30dddaf9 · raw patch
Test case

test/inputs/graphql/github1.graphql

3 generated files · +0 −15
Mgraphql-flowdefault / TopLevel.js+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Mgraphql-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mgraphql-typescriptdefault / TopLevel.ts+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Test case

test/inputs/graphql/github2.graphql

3 generated files · +0 −15
Mgraphql-flowdefault / TopLevel.js+0 −5
@@ -119,15 +119,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
119119 if (val === null) {
120120 return null;
121121 }
122- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
123- return invalidValue(l("Date"), val, key, parent);
124122 const d = new Date(val);
125123 if (isNaN(d.valueOf())) {
126124 return invalidValue(l("Date"), val, key, parent);
127125 }
128- const date = typeof val === "string" ? val.slice(0, 10) : null;
129- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
130- return invalidValue(l("Date"), val, key, parent);
131126 return d;
132127 }
Mgraphql-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mgraphql-typescriptdefault / TopLevel.ts+0 −5
@@ -119,15 +119,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
119119 if (val === null) {
120120 return null;
121121 }
122- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
123- return invalidValue(l("Date"), val, key, parent);
124122 const d = new Date(val);
125123 if (isNaN(d.valueOf())) {
126124 return invalidValue(l("Date"), val, key, parent);
127125 }
128- const date = typeof val === "string" ? val.slice(0, 10) : null;
129- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
130- return invalidValue(l("Date"), val, key, parent);
131126 return d;
132127 }
Test case

test/inputs/graphql/github3.graphql

3 generated files · +0 −15
Mgraphql-flowdefault / TopLevel.js+0 −5
@@ -127,15 +127,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
127127 if (val === null) {
128128 return null;
129129 }
130- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
131- return invalidValue(l("Date"), val, key, parent);
132130 const d = new Date(val);
133131 if (isNaN(d.valueOf())) {
134132 return invalidValue(l("Date"), val, key, parent);
135133 }
136- const date = typeof val === "string" ? val.slice(0, 10) : null;
137- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
138- return invalidValue(l("Date"), val, key, parent);
139134 return d;
140135 }
Mgraphql-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mgraphql-typescriptdefault / TopLevel.ts+0 −5
@@ -124,15 +124,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
124124 if (val === null) {
125125 return null;
126126 }
127- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
128- return invalidValue(l("Date"), val, key, parent);
129127 const d = new Date(val);
130128 if (isNaN(d.valueOf())) {
131129 return invalidValue(l("Date"), val, key, parent);
132130 }
133- const date = typeof val === "string" ? val.slice(0, 10) : null;
134- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
135- return invalidValue(l("Date"), val, key, parent);
136131 return d;
137132 }
Test case

test/inputs/graphql/github4.graphql

3 generated files · +0 −15
Mgraphql-flowdefault / TopLevel.js+0 −5
@@ -128,15 +128,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
128128 if (val === null) {
129129 return null;
130130 }
131- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
132- return invalidValue(l("Date"), val, key, parent);
133131 const d = new Date(val);
134132 if (isNaN(d.valueOf())) {
135133 return invalidValue(l("Date"), val, key, parent);
136134 }
137- const date = typeof val === "string" ? val.slice(0, 10) : null;
138- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
139- return invalidValue(l("Date"), val, key, parent);
140135 return d;
141136 }
Mgraphql-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mgraphql-typescriptdefault / TopLevel.ts+0 −5
@@ -125,15 +125,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
125125 if (val === null) {
126126 return null;
127127 }
128- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
129- return invalidValue(l("Date"), val, key, parent);
130128 const d = new Date(val);
131129 if (isNaN(d.valueOf())) {
132130 return invalidValue(l("Date"), val, key, parent);
133131 }
134- const date = typeof val === "string" ? val.slice(0, 10) : null;
135- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
136- return invalidValue(l("Date"), val, key, parent);
137132 return d;
138133 }
Test case

test/inputs/graphql/github5.graphql

3 generated files · +0 −15
Mgraphql-flowdefault / TopLevel.js+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Mgraphql-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mgraphql-typescriptdefault / TopLevel.ts+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Test case

test/inputs/graphql/github6.graphql

3 generated files · +0 −15
Mgraphql-flowdefault / TopLevel.js+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Mgraphql-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mgraphql-typescriptdefault / TopLevel.ts+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Test case

test/inputs/graphql/github7.graphql

3 generated files · +0 −15
Mgraphql-flowdefault / TopLevel.js+0 −5
@@ -131,15 +131,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
131131 if (val === null) {
132132 return null;
133133 }
134- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
135- return invalidValue(l("Date"), val, key, parent);
136134 const d = new Date(val);
137135 if (isNaN(d.valueOf())) {
138136 return invalidValue(l("Date"), val, key, parent);
139137 }
140- const date = typeof val === "string" ? val.slice(0, 10) : null;
141- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
142- return invalidValue(l("Date"), val, key, parent);
143138 return d;
144139 }
Mgraphql-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mgraphql-typescriptdefault / TopLevel.ts+0 −5
@@ -131,15 +131,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
131131 if (val === null) {
132132 return null;
133133 }
134- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
135- return invalidValue(l("Date"), val, key, parent);
136134 const d = new Date(val);
137135 if (isNaN(d.valueOf())) {
138136 return invalidValue(l("Date"), val, key, parent);
139137 }
140- const date = typeof val === "string" ? val.slice(0, 10) : null;
141- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
142- return invalidValue(l("Date"), val, key, parent);
143138 return d;
144139 }
Test case

test/inputs/graphql/github8.graphql

3 generated files · +0 −15
Mgraphql-flowdefault / TopLevel.js+0 −5
@@ -121,15 +121,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
121121 if (val === null) {
122122 return null;
123123 }
124- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
125- return invalidValue(l("Date"), val, key, parent);
126124 const d = new Date(val);
127125 if (isNaN(d.valueOf())) {
128126 return invalidValue(l("Date"), val, key, parent);
129127 }
130- const date = typeof val === "string" ? val.slice(0, 10) : null;
131- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
132- return invalidValue(l("Date"), val, key, parent);
133128 return d;
134129 }
Mgraphql-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mgraphql-typescriptdefault / TopLevel.ts+0 −5
@@ -119,15 +119,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
119119 if (val === null) {
120120 return null;
121121 }
122- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
123- return invalidValue(l("Date"), val, key, parent);
124122 const d = new Date(val);
125123 if (isNaN(d.valueOf())) {
126124 return invalidValue(l("Date"), val, key, parent);
127125 }
128- const date = typeof val === "string" ? val.slice(0, 10) : null;
129- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
130- return invalidValue(l("Date"), val, key, parent);
131126 return d;
132127 }
Test case

test/inputs/graphql/github9.graphql

3 generated files · +0 −15
Mgraphql-flowdefault / TopLevel.js+0 −5
@@ -128,15 +128,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
128128 if (val === null) {
129129 return null;
130130 }
131- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
132- return invalidValue(l("Date"), val, key, parent);
133131 const d = new Date(val);
134132 if (isNaN(d.valueOf())) {
135133 return invalidValue(l("Date"), val, key, parent);
136134 }
137- const date = typeof val === "string" ? val.slice(0, 10) : null;
138- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
139- return invalidValue(l("Date"), val, key, parent);
140135 return d;
141136 }
Mgraphql-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mgraphql-typescriptdefault / TopLevel.ts+0 −5
@@ -122,15 +122,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
122122 if (val === null) {
123123 return null;
124124 }
125- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
126- return invalidValue(l("Date"), val, key, parent);
127125 const d = new Date(val);
128126 if (isNaN(d.valueOf())) {
129127 return invalidValue(l("Date"), val, key, parent);
130128 }
131- const date = typeof val === "string" ? val.slice(0, 10) : null;
132- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
133- return invalidValue(l("Date"), val, key, parent);
134129 return d;
135130 }
Test case

test/inputs/json/misc/00c36.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -124,15 +124,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
124124 if (val === null) {
125125 return null;
126126 }
127- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
128- return invalidValue(l("Date"), val, key, parent);
129127 const d = new Date(val);
130128 if (isNaN(d.valueOf())) {
131129 return invalidValue(l("Date"), val, key, parent);
132130 }
133- const date = typeof val === "string" ? val.slice(0, 10) : null;
134- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
135- return invalidValue(l("Date"), val, key, parent);
136131 return d;
137132 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -120,15 +120,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
120120 if (val === null) {
121121 return null;
122122 }
123- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
124- return invalidValue(l("Date"), val, key, parent);
125123 const d = new Date(val);
126124 if (isNaN(d.valueOf())) {
127125 return invalidValue(l("Date"), val, key, parent);
128126 }
129- const date = typeof val === "string" ? val.slice(0, 10) : null;
130- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
131- return invalidValue(l("Date"), val, key, parent);
132127 return d;
133128 }
Test case

test/inputs/json/misc/00ec5.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -163,15 +163,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
163163 if (val === null) {
164164 return null;
165165 }
166- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
167- return invalidValue(l("Date"), val, key, parent);
168166 const d = new Date(val);
169167 if (isNaN(d.valueOf())) {
170168 return invalidValue(l("Date"), val, key, parent);
171169 }
172- const date = typeof val === "string" ? val.slice(0, 10) : null;
173- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
174- return invalidValue(l("Date"), val, key, parent);
175170 return d;
176171 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -162,15 +162,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
162162 if (val === null) {
163163 return null;
164164 }
165- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
166- return invalidValue(l("Date"), val, key, parent);
167165 const d = new Date(val);
168166 if (isNaN(d.valueOf())) {
169167 return invalidValue(l("Date"), val, key, parent);
170168 }
171- const date = typeof val === "string" ? val.slice(0, 10) : null;
172- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
173- return invalidValue(l("Date"), val, key, parent);
174169 return d;
175170 }
Test case

test/inputs/json/misc/010b1.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/json/misc/016af.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/033b1.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/050b0.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -152,15 +152,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
152152 if (val === null) {
153153 return null;
154154 }
155- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
156- return invalidValue(l("Date"), val, key, parent);
157155 const d = new Date(val);
158156 if (isNaN(d.valueOf())) {
159157 return invalidValue(l("Date"), val, key, parent);
160158 }
161- const date = typeof val === "string" ? val.slice(0, 10) : null;
162- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
163- return invalidValue(l("Date"), val, key, parent);
164159 return d;
165160 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -136,15 +136,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
136136 if (val === null) {
137137 return null;
138138 }
139- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
140- return invalidValue(l("Date"), val, key, parent);
141139 const d = new Date(val);
142140 if (isNaN(d.valueOf())) {
143141 return invalidValue(l("Date"), val, key, parent);
144142 }
145- const date = typeof val === "string" ? val.slice(0, 10) : null;
146- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
147- return invalidValue(l("Date"), val, key, parent);
148143 return d;
149144 }
Test case

test/inputs/json/misc/06bee.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -140,15 +140,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
140140 if (val === null) {
141141 return null;
142142 }
143- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
144- return invalidValue(l("Date"), val, key, parent);
145143 const d = new Date(val);
146144 if (isNaN(d.valueOf())) {
147145 return invalidValue(l("Date"), val, key, parent);
148146 }
149- const date = typeof val === "string" ? val.slice(0, 10) : null;
150- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
151- return invalidValue(l("Date"), val, key, parent);
152147 return d;
153148 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -131,15 +131,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
131131 if (val === null) {
132132 return null;
133133 }
134- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
135- return invalidValue(l("Date"), val, key, parent);
136134 const d = new Date(val);
137135 if (isNaN(d.valueOf())) {
138136 return invalidValue(l("Date"), val, key, parent);
139137 }
140- const date = typeof val === "string" ? val.slice(0, 10) : null;
141- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
142- return invalidValue(l("Date"), val, key, parent);
143138 return d;
144139 }
Test case

test/inputs/json/misc/07540.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Test case

test/inputs/json/misc/0779f.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/07c75.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -121,15 +121,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
121121 if (val === null) {
122122 return null;
123123 }
124- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
125- return invalidValue(l("Date"), val, key, parent);
126124 const d = new Date(val);
127125 if (isNaN(d.valueOf())) {
128126 return invalidValue(l("Date"), val, key, parent);
129127 }
130- const date = typeof val === "string" ? val.slice(0, 10) : null;
131- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
132- return invalidValue(l("Date"), val, key, parent);
133128 return d;
134129 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -121,15 +121,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
121121 if (val === null) {
122122 return null;
123123 }
124- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
125- return invalidValue(l("Date"), val, key, parent);
126124 const d = new Date(val);
127125 if (isNaN(d.valueOf())) {
128126 return invalidValue(l("Date"), val, key, parent);
129127 }
130- const date = typeof val === "string" ? val.slice(0, 10) : null;
131- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
132- return invalidValue(l("Date"), val, key, parent);
133128 return d;
134129 }
Test case

test/inputs/json/misc/09f54.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Test case

test/inputs/json/misc/0a358.json

6 generated files · +5 −20
Mflowdefault / TopLevel.js+0 −5
@@ -114,15 +114,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
114114 if (val === null) {
115115 return null;
116116 }
117- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
118- return invalidValue(l("Date"), val, key, parent);
119117 const d = new Date(val);
120118 if (isNaN(d.valueOf())) {
121119 return invalidValue(l("Date"), val, key, parent);
122120 }
123- const date = typeof val === "string" ? val.slice(0, 10) : null;
124- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
125- return invalidValue(l("Date"), val, key, parent);
126121 return d;
127122 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -20,10 +20,10 @@ _Facets = PropTypes.shape({
2020 });
2121 _Result = PropTypes.shape({
2222 "code": PropTypes.oneOfType([PropTypes.string]).isRequired,
23- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
23+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2424 "id": PropTypes.oneOfType([Integer]).isRequired,
2525 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
26- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
26+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2727 "uri": PropTypes.oneOfType([PropTypes.string]).isRequired,
2828 });
2929 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -13,7 +13,7 @@ def from_str(x: Any) -> str:
1313
1414
1515 def from_datetime(x: Any) -> datetime.datetime:
16- return dateutil.parser.parse(x)
16+ return dateutil.parser.isoparse(x)
1717
1818
1919 def from_int(x: Any) -> int:
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -3,10 +3,10 @@ import * as S from "effect/Schema";
33
44 export class Result extends S.Class<Result>("Result")({
55 "code": S.String,
6- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
6+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
77 "id": S.Int,
88 "name": S.String,
9- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
9+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
1010 "uri": S.String,
1111 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -111,15 +111,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
111111 if (val === null) {
112112 return null;
113113 }
114- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
115- return invalidValue(l("Date"), val, key, parent);
116114 const d = new Date(val);
117115 if (isNaN(d.valueOf())) {
118116 return invalidValue(l("Date"), val, key, parent);
119117 }
120- const date = typeof val === "string" ? val.slice(0, 10) : null;
121- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
122- return invalidValue(l("Date"), val, key, parent);
123118 return d;
124119 }
Test case

test/inputs/json/misc/0a91a.json

6 generated files · +17 −32
Mflowdefault / TopLevel.js+0 −5
@@ -316,15 +316,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
316316 if (val === null) {
317317 return null;
318318 }
319- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
320- return invalidValue(l("Date"), val, key, parent);
321319 const d = new Date(val);
322320 if (isNaN(d.valueOf())) {
323321 return invalidValue(l("Date"), val, key, parent);
324322 }
325- const date = typeof val === "string" ? val.slice(0, 10) : null;
326- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
327- return invalidValue(l("Date"), val, key, parent);
328323 return d;
329324 }
Mjavascript-prop-typesdefault / toplevel.js+8 −8
@@ -89,7 +89,7 @@ _BaseRepo = PropTypes.shape({
8989 "compare_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
9090 "contents_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
9191 "contributors_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
92- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
92+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
9393 "default_branch": PropTypes.oneOfType([PropTypes.string]).isRequired,
9494 "deployments_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
9595 "description": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
@@ -130,7 +130,7 @@ _BaseRepo = PropTypes.shape({
130130 "owner": _MergedBy,
131131 "private": PropTypes.oneOfType([PropTypes.bool]).isRequired,
132132 "pulls_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
133- "pushed_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
133+ "pushed_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
134134 "releases_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
135135 "size": PropTypes.oneOfType([Integer]).isRequired,
136136 "ssh_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
@@ -143,7 +143,7 @@ _BaseRepo = PropTypes.shape({
143143 "tags_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
144144 "teams_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
145145 "trees_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
146- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
146+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
147147 "url": PropTypes.oneOfType([PropTypes.string]).isRequired,
148148 "watchers": PropTypes.oneOfType([Integer]).isRequired,
149149 "watchers_count": PropTypes.oneOfType([Integer]).isRequired,
@@ -163,12 +163,12 @@ _PullRequest = PropTypes.shape({
163163 "base": _Base,
164164 "body": PropTypes.oneOfType([PropTypes.string]).isRequired,
165165 "changed_files": PropTypes.oneOfType([Integer]).isRequired,
166- "closed_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
166+ "closed_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
167167 "comments": PropTypes.oneOfType([Integer]).isRequired,
168168 "comments_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
169169 "commits": PropTypes.oneOfType([Integer]).isRequired,
170170 "commits_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
171- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
171+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
172172 "deletions": PropTypes.oneOfType([Integer]).isRequired,
173173 "diff_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
174174 "head": _Base,
@@ -181,7 +181,7 @@ _PullRequest = PropTypes.shape({
181181 "mergeable": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
182182 "mergeable_state": PropTypes.oneOfType([PropTypes.string]).isRequired,
183183 "merged": PropTypes.oneOfType([PropTypes.bool]).isRequired,
184- "merged_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
184+ "merged_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
185185 "merged_by": _MergedBy,
186186 "milestone": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
187187 "number": PropTypes.oneOfType([Integer]).isRequired,
@@ -194,7 +194,7 @@ _PullRequest = PropTypes.shape({
194194 "state": PropTypes.oneOfType([PropTypes.string]).isRequired,
195195 "statuses_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
196196 "title": PropTypes.oneOfType([PropTypes.string]).isRequired,
197- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
197+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
198198 "url": PropTypes.oneOfType([PropTypes.string]).isRequired,
199199 "user": _MergedBy,
200200 });
@@ -221,7 +221,7 @@ _TopLevelRepo = PropTypes.shape({
221221 });
222222 _TopLevel = PropTypes.shape({
223223 "actor": _Actor,
224- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
224+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
225225 "id": PropTypes.oneOfType([PropTypes.string]).isRequired,
226226 "org": PropTypes.oneOfType([_Actor, PropTypes.oneOf([null])]),
227227 "payload": _Payload,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -44,7 +44,7 @@ def to_class(c: Type[T], x: Any) -> dict:
4444
4545
4646 def from_datetime(x: Any) -> datetime.datetime:
47- return dateutil.parser.parse(x)
47+ return dateutil.parser.isoparse(x)
4848
4949
5050 def from_list(f: Callable[[Any], T], x: Any) -> list[T]:
Mtypescript-effect-schemadefault / TopLevel.ts+8 −8
@@ -63,7 +63,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
6363 "compare_url": S.String,
6464 "contents_url": S.String,
6565 "contributors_url": S.String,
66- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
66+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
6767 "default_branch": S.String,
6868 "deployments_url": S.String,
6969 "description": S.Null,
@@ -104,7 +104,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
104104 "owner": MergedBy,
105105 "private": S.Boolean,
106106 "pulls_url": S.String,
107- "pushed_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
107+ "pushed_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
108108 "releases_url": S.String,
109109 "size": S.Int,
110110 "ssh_url": S.String,
@@ -117,7 +117,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
117117 "tags_url": S.String,
118118 "teams_url": S.String,
119119 "trees_url": S.String,
120- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
120+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
121121 "url": S.String,
122122 "watchers": S.Int,
123123 "watchers_count": S.Int,
@@ -138,12 +138,12 @@ export class PullRequest extends S.Class<PullRequest>("PullRequest")({
138138 "base": Base,
139139 "body": S.String,
140140 "changed_files": S.Int,
141- "closed_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
141+ "closed_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
142142 "comments": S.Int,
143143 "comments_url": S.String,
144144 "commits": S.Int,
145145 "commits_url": S.String,
146- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
146+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
147147 "deletions": S.Int,
148148 "diff_url": S.String,
149149 "head": Base,
@@ -157,7 +157,7 @@ export class PullRequest extends S.Class<PullRequest>("PullRequest")({
157157 "mergeable": S.Null,
158158 "mergeable_state": S.String,
159159 "merged": S.Boolean,
160- "merged_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
160+ "merged_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
161161 "merged_by": MergedBy,
162162 "milestone": S.Null,
163163 "number": S.Int,
@@ -170,7 +170,7 @@ export class PullRequest extends S.Class<PullRequest>("PullRequest")({
170170 "state": S.String,
171171 "statuses_url": S.String,
172172 "title": S.String,
173- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
173+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
174174 "url": S.String,
175175 "user": MergedBy,
176176 }) {}
@@ -216,7 +216,7 @@ export class Actor extends S.Class<Actor>("Actor")({
216216
217217 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
218218 "actor": Actor,
219- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
219+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
220220 "id": S.String,
221221 "org": S.optional(Actor),
222222 "payload": Payload,
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -311,15 +311,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
311311 if (val === null) {
312312 return null;
313313 }
314- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
315- return invalidValue(l("Date"), val, key, parent);
316314 const d = new Date(val);
317315 if (isNaN(d.valueOf())) {
318316 return invalidValue(l("Date"), val, key, parent);
319317 }
320- const date = typeof val === "string" ? val.slice(0, 10) : null;
321- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
322- return invalidValue(l("Date"), val, key, parent);
323318 return d;
324319 }
Test case

test/inputs/json/misc/0b91a.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -136,15 +136,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
136136 if (val === null) {
137137 return null;
138138 }
139- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
140- return invalidValue(l("Date"), val, key, parent);
141139 const d = new Date(val);
142140 if (isNaN(d.valueOf())) {
143141 return invalidValue(l("Date"), val, key, parent);
144142 }
145- const date = typeof val === "string" ? val.slice(0, 10) : null;
146- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
147- return invalidValue(l("Date"), val, key, parent);
148143 return d;
149144 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -136,15 +136,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
136136 if (val === null) {
137137 return null;
138138 }
139- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
140- return invalidValue(l("Date"), val, key, parent);
141139 const d = new Date(val);
142140 if (isNaN(d.valueOf())) {
143141 return invalidValue(l("Date"), val, key, parent);
144142 }
145- const date = typeof val === "string" ? val.slice(0, 10) : null;
146- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
147- return invalidValue(l("Date"), val, key, parent);
148143 return d;
149144 }
Test case

test/inputs/json/misc/0cffa.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -211,15 +211,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
211211 if (val === null) {
212212 return null;
213213 }
214- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
215- return invalidValue(l("Date"), val, key, parent);
216214 const d = new Date(val);
217215 if (isNaN(d.valueOf())) {
218216 return invalidValue(l("Date"), val, key, parent);
219217 }
220- const date = typeof val === "string" ? val.slice(0, 10) : null;
221- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
222- return invalidValue(l("Date"), val, key, parent);
223218 return d;
224219 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -204,15 +204,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
204204 if (val === null) {
205205 return null;
206206 }
207- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
208- return invalidValue(l("Date"), val, key, parent);
209207 const d = new Date(val);
210208 if (isNaN(d.valueOf())) {
211209 return invalidValue(l("Date"), val, key, parent);
212210 }
213- const date = typeof val === "string" ? val.slice(0, 10) : null;
214- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
215- return invalidValue(l("Date"), val, key, parent);
216211 return d;
217212 }
Test case

test/inputs/json/misc/0e0c2.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -173,15 +173,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
173173 if (val === null) {
174174 return null;
175175 }
176- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
177- return invalidValue(l("Date"), val, key, parent);
178176 const d = new Date(val);
179177 if (isNaN(d.valueOf())) {
180178 return invalidValue(l("Date"), val, key, parent);
181179 }
182- const date = typeof val === "string" ? val.slice(0, 10) : null;
183- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
184- return invalidValue(l("Date"), val, key, parent);
185180 return d;
186181 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -71,7 +71,7 @@ _Result = PropTypes.shape({
7171 "id": PropTypes.oneOfType([Integer]).isRequired,
7272 "images": PropTypes.oneOfType([PropTypes.arrayOf(_Image)]).isRequired,
7373 "language": _ResultLanguage,
74- "release_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
74+ "release_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
7575 "stars": PropTypes.oneOfType([Integer]).isRequired,
7676 "tags": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.any), PropTypes.oneOf([null])])])(props, name, ...args),
7777 "title": PropTypes.oneOfType([PropTypes.string]).isRequired,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -74,7 +74,7 @@ export class Result extends S.Class<Result>("Result")({
7474 "id": S.Int,
7575 "images": S.Array(Image),
7676 "language": ResultLanguage,
77- "release_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
77+ "release_date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
7878 "stars": S.Int,
7979 "tags": S.NullOr(S.Array(S.Any)),
8080 "title": S.String,
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -167,15 +167,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
167167 if (val === null) {
168168 return null;
169169 }
170- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
171- return invalidValue(l("Date"), val, key, parent);
172170 const d = new Date(val);
173171 if (isNaN(d.valueOf())) {
174172 return invalidValue(l("Date"), val, key, parent);
175173 }
176- const date = typeof val === "string" ? val.slice(0, 10) : null;
177- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
178- return invalidValue(l("Date"), val, key, parent);
179174 return d;
180175 }
Test case

test/inputs/json/misc/0fecf.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Test case

test/inputs/json/misc/10be4.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -163,15 +163,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
163163 if (val === null) {
164164 return null;
165165 }
166- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
167- return invalidValue(l("Date"), val, key, parent);
168166 const d = new Date(val);
169167 if (isNaN(d.valueOf())) {
170168 return invalidValue(l("Date"), val, key, parent);
171169 }
172- const date = typeof val === "string" ? val.slice(0, 10) : null;
173- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
174- return invalidValue(l("Date"), val, key, parent);
175170 return d;
176171 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -136,15 +136,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
136136 if (val === null) {
137137 return null;
138138 }
139- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
140- return invalidValue(l("Date"), val, key, parent);
141139 const d = new Date(val);
142140 if (isNaN(d.valueOf())) {
143141 return invalidValue(l("Date"), val, key, parent);
144142 }
145- const date = typeof val === "string" ? val.slice(0, 10) : null;
146- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
147- return invalidValue(l("Date"), val, key, parent);
148143 return d;
149144 }
Test case

test/inputs/json/misc/112b5.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Test case

test/inputs/json/misc/127a1.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -210,15 +210,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
210210 if (val === null) {
211211 return null;
212212 }
213- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
214- return invalidValue(l("Date"), val, key, parent);
215213 const d = new Date(val);
216214 if (isNaN(d.valueOf())) {
217215 return invalidValue(l("Date"), val, key, parent);
218216 }
219- const date = typeof val === "string" ? val.slice(0, 10) : null;
220- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
221- return invalidValue(l("Date"), val, key, parent);
222217 return d;
223218 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -204,15 +204,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
204204 if (val === null) {
205205 return null;
206206 }
207- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
208- return invalidValue(l("Date"), val, key, parent);
209207 const d = new Date(val);
210208 if (isNaN(d.valueOf())) {
211209 return invalidValue(l("Date"), val, key, parent);
212210 }
213- const date = typeof val === "string" ? val.slice(0, 10) : null;
214- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
215- return invalidValue(l("Date"), val, key, parent);
216211 return d;
217212 }
Test case

test/inputs/json/misc/13d8d.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -122,15 +122,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
122122 if (val === null) {
123123 return null;
124124 }
125- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
126- return invalidValue(l("Date"), val, key, parent);
127125 const d = new Date(val);
128126 if (isNaN(d.valueOf())) {
129127 return invalidValue(l("Date"), val, key, parent);
130128 }
131- const date = typeof val === "string" ? val.slice(0, 10) : null;
132- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
133- return invalidValue(l("Date"), val, key, parent);
134129 return d;
135130 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -122,15 +122,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
122122 if (val === null) {
123123 return null;
124124 }
125- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
126- return invalidValue(l("Date"), val, key, parent);
127125 const d = new Date(val);
128126 if (isNaN(d.valueOf())) {
129127 return invalidValue(l("Date"), val, key, parent);
130128 }
131- const date = typeof val === "string" ? val.slice(0, 10) : null;
132- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
133- return invalidValue(l("Date"), val, key, parent);
134129 return d;
135130 }
Test case

test/inputs/json/misc/14d38.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/json/misc/167d6.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/16bc5.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -108,7 +108,7 @@ _Results = PropTypes.shape({
108108 });
109109 _Query = PropTypes.shape({
110110 "count": PropTypes.oneOfType([Integer]).isRequired,
111- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
111+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
112112 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
113113 "results": _Results,
114114 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
3636
3737
3838 def from_datetime(x: Any) -> datetime.datetime:
39- return dateutil.parser.parse(x)
39+ return dateutil.parser.isoparse(x)
4040
4141
4242 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
9494
9595 export class Query extends S.Class<Query>("Query")({
9696 "count": S.Int,
97- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
97+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
9898 "lang": S.String,
9999 "results": Results,
100100 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Test case

test/inputs/json/misc/176f1.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -121,15 +121,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
121121 if (val === null) {
122122 return null;
123123 }
124- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
125- return invalidValue(l("Date"), val, key, parent);
126124 const d = new Date(val);
127125 if (isNaN(d.valueOf())) {
128126 return invalidValue(l("Date"), val, key, parent);
129127 }
130- const date = typeof val === "string" ? val.slice(0, 10) : null;
131- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
132- return invalidValue(l("Date"), val, key, parent);
133128 return d;
134129 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -121,15 +121,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
121121 if (val === null) {
122122 return null;
123123 }
124- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
125- return invalidValue(l("Date"), val, key, parent);
126124 const d = new Date(val);
127125 if (isNaN(d.valueOf())) {
128126 return invalidValue(l("Date"), val, key, parent);
129127 }
130- const date = typeof val === "string" ? val.slice(0, 10) : null;
131- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
132- return invalidValue(l("Date"), val, key, parent);
133128 return d;
134129 }
Test case

test/inputs/json/misc/1a7f5.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/json/misc/1b28c.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/1b409.json

5 generated files · +6 −21
Mflowdefault / TopLevel.js+0 −5
@@ -187,15 +187,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
187187 if (val === null) {
188188 return null;
189189 }
190- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
191- return invalidValue(l("Date"), val, key, parent);
192190 const d = new Date(val);
193191 if (isNaN(d.valueOf())) {
194192 return invalidValue(l("Date"), val, key, parent);
195193 }
196- const date = typeof val === "string" ? val.slice(0, 10) : null;
197- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
198- return invalidValue(l("Date"), val, key, parent);
199194 return d;
200195 }
Mjavascript-prop-typesdefault / toplevel.js+3 −3
@@ -39,7 +39,7 @@ _Extra = PropTypes.shape({
3939 });
4040 _Person = PropTypes.shape({
4141 "bioguideid": PropTypes.oneOfType([PropTypes.string]).isRequired,
42- "birthday": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
42+ "birthday": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
4343 "cspanid": PropTypes.oneOfType([Integer]).isRequired,
4444 "firstname": PropTypes.oneOfType([PropTypes.string]).isRequired,
4545 "gender": _Gender,
@@ -63,7 +63,7 @@ _Object = PropTypes.shape({
6363 "current": PropTypes.oneOfType([PropTypes.bool]).isRequired,
6464 "description": PropTypes.oneOfType([PropTypes.string]).isRequired,
6565 "district": PropTypes.oneOfType([Integer]).isRequired,
66- "enddate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
66+ "enddate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
6767 "extra": _Extra,
6868 "id": PropTypes.oneOfType([Integer]).isRequired,
6969 "leadership_title": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
@@ -74,7 +74,7 @@ _Object = PropTypes.shape({
7474 "role_type_label": _RoleTypeLabel,
7575 "senator_class": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
7676 "senator_rank": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
77- "startdate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
77+ "startdate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
7878 "state": PropTypes.oneOfType([PropTypes.string]).isRequired,
7979 "title": _Title,
8080 "title_long": _RoleTypeLabel,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -54,7 +54,7 @@ export type Title = S.Schema.Type<typeof Title>;
5454
5555 export class Person extends S.Class<Person>("Person")({
5656 "bioguideid": S.String,
57- "birthday": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
57+ "birthday": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
5858 "cspanid": S.Int,
5959 "firstname": S.String,
6060 "gender": Gender,
@@ -87,7 +87,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
8787 "current": S.Boolean,
8888 "description": S.String,
8989 "district": S.Int,
90- "enddate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
90+ "enddate": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
9191 "extra": Extra,
9292 "id": S.Int,
9393 "leadership_title": S.NullOr(S.String),
@@ -98,7 +98,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
9898 "role_type_label": RoleTypeLabel,
9999 "senator_class": S.Null,
100100 "senator_rank": S.Null,
101- "startdate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
101+ "startdate": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
102102 "state": S.String,
103103 "title": Title,
104104 "title_long": RoleTypeLabel,
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -170,15 +170,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
170170 if (val === null) {
171171 return null;
172172 }
173- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
174- return invalidValue(l("Date"), val, key, parent);
175173 const d = new Date(val);
176174 if (isNaN(d.valueOf())) {
177175 return invalidValue(l("Date"), val, key, parent);
178176 }
179- const date = typeof val === "string" ? val.slice(0, 10) : null;
180- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
181- return invalidValue(l("Date"), val, key, parent);
182177 return d;
183178 }
Test case

test/inputs/json/misc/2465e.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -169,15 +169,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
169169 if (val === null) {
170170 return null;
171171 }
172- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
173- return invalidValue(l("Date"), val, key, parent);
174172 const d = new Date(val);
175173 if (isNaN(d.valueOf())) {
176174 return invalidValue(l("Date"), val, key, parent);
177175 }
178- const date = typeof val === "string" ? val.slice(0, 10) : null;
179- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
180- return invalidValue(l("Date"), val, key, parent);
181176 return d;
182177 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -169,15 +169,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
169169 if (val === null) {
170170 return null;
171171 }
172- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
173- return invalidValue(l("Date"), val, key, parent);
174172 const d = new Date(val);
175173 if (isNaN(d.valueOf())) {
176174 return invalidValue(l("Date"), val, key, parent);
177175 }
178- const date = typeof val === "string" ? val.slice(0, 10) : null;
179- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
180- return invalidValue(l("Date"), val, key, parent);
181176 return d;
182177 }
Test case

test/inputs/json/misc/24f52.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/262f0.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -199,15 +199,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
199199 if (val === null) {
200200 return null;
201201 }
202- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
203- return invalidValue(l("Date"), val, key, parent);
204202 const d = new Date(val);
205203 if (isNaN(d.valueOf())) {
206204 return invalidValue(l("Date"), val, key, parent);
207205 }
208- const date = typeof val === "string" ? val.slice(0, 10) : null;
209- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
210- return invalidValue(l("Date"), val, key, parent);
211206 return d;
212207 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -109,7 +109,7 @@ _Results = PropTypes.shape({
109109 });
110110 _Query = PropTypes.shape({
111111 "count": PropTypes.oneOfType([Integer]).isRequired,
112- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
112+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
113113 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
114114 "results": _Results,
115115 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
4343
4444
4545 def from_datetime(x: Any) -> datetime.datetime:
46- return dateutil.parser.parse(x)
46+ return dateutil.parser.isoparse(x)
4747
4848
4949 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -101,7 +101,7 @@ export class Results extends S.Class<Results>("Results")({
101101
102102 export class Query extends S.Class<Query>("Query")({
103103 "count": S.Int,
104- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
104+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
105105 "lang": S.String,
106106 "results": Results,
107107 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -196,15 +196,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
196196 if (val === null) {
197197 return null;
198198 }
199- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
200- return invalidValue(l("Date"), val, key, parent);
201199 const d = new Date(val);
202200 if (isNaN(d.valueOf())) {
203201 return invalidValue(l("Date"), val, key, parent);
204202 }
205- const date = typeof val === "string" ? val.slice(0, 10) : null;
206- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
207- return invalidValue(l("Date"), val, key, parent);
208203 return d;
209204 }
Test case

test/inputs/json/misc/26b49.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -208,15 +208,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
208208 if (val === null) {
209209 return null;
210210 }
211- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
212- return invalidValue(l("Date"), val, key, parent);
213211 const d = new Date(val);
214212 if (isNaN(d.valueOf())) {
215213 return invalidValue(l("Date"), val, key, parent);
216214 }
217- const date = typeof val === "string" ? val.slice(0, 10) : null;
218- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
219- return invalidValue(l("Date"), val, key, parent);
220215 return d;
221216 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -203,15 +203,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
203203 if (val === null) {
204204 return null;
205205 }
206- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
207- return invalidValue(l("Date"), val, key, parent);
208206 const d = new Date(val);
209207 if (isNaN(d.valueOf())) {
210208 return invalidValue(l("Date"), val, key, parent);
211209 }
212- const date = typeof val === "string" ? val.slice(0, 10) : null;
213- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
214- return invalidValue(l("Date"), val, key, parent);
215210 return d;
216211 }
Test case

test/inputs/json/misc/26c9c.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -283,15 +283,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
283283 if (val === null) {
284284 return null;
285285 }
286- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
287- return invalidValue(l("Date"), val, key, parent);
288286 const d = new Date(val);
289287 if (isNaN(d.valueOf())) {
290288 return invalidValue(l("Date"), val, key, parent);
291289 }
292- const date = typeof val === "string" ? val.slice(0, 10) : null;
293- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
294- return invalidValue(l("Date"), val, key, parent);
295290 return d;
296291 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -283,15 +283,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
283283 if (val === null) {
284284 return null;
285285 }
286- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
287- return invalidValue(l("Date"), val, key, parent);
288286 const d = new Date(val);
289287 if (isNaN(d.valueOf())) {
290288 return invalidValue(l("Date"), val, key, parent);
291289 }
292- const date = typeof val === "string" ? val.slice(0, 10) : null;
293- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
294- return invalidValue(l("Date"), val, key, parent);
295290 return d;
296291 }
Test case

test/inputs/json/misc/27332.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -249,15 +249,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
249249 if (val === null) {
250250 return null;
251251 }
252- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
253- return invalidValue(l("Date"), val, key, parent);
254252 const d = new Date(val);
255253 if (isNaN(d.valueOf())) {
256254 return invalidValue(l("Date"), val, key, parent);
257255 }
258- const date = typeof val === "string" ? val.slice(0, 10) : null;
259- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
260- return invalidValue(l("Date"), val, key, parent);
261256 return d;
262257 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -235,15 +235,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
235235 if (val === null) {
236236 return null;
237237 }
238- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
239- return invalidValue(l("Date"), val, key, parent);
240238 const d = new Date(val);
241239 if (isNaN(d.valueOf())) {
242240 return invalidValue(l("Date"), val, key, parent);
243241 }
244- const date = typeof val === "string" ? val.slice(0, 10) : null;
245- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
246- return invalidValue(l("Date"), val, key, parent);
247242 return d;
248243 }
Test case

test/inputs/json/misc/29f47.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -235,15 +235,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
235235 if (val === null) {
236236 return null;
237237 }
238- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
239- return invalidValue(l("Date"), val, key, parent);
240238 const d = new Date(val);
241239 if (isNaN(d.valueOf())) {
242240 return invalidValue(l("Date"), val, key, parent);
243241 }
244- const date = typeof val === "string" ? val.slice(0, 10) : null;
245- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
246- return invalidValue(l("Date"), val, key, parent);
247242 return d;
248243 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -222,15 +222,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
222222 if (val === null) {
223223 return null;
224224 }
225- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
226- return invalidValue(l("Date"), val, key, parent);
227225 const d = new Date(val);
228226 if (isNaN(d.valueOf())) {
229227 return invalidValue(l("Date"), val, key, parent);
230228 }
231- const date = typeof val === "string" ? val.slice(0, 10) : null;
232- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
233- return invalidValue(l("Date"), val, key, parent);
234229 return d;
235230 }
Test case

test/inputs/json/misc/2d4e2.json

5 generated files · +6 −21
Mflowdefault / TopLevel.js+0 −5
@@ -203,15 +203,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
203203 if (val === null) {
204204 return null;
205205 }
206- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
207- return invalidValue(l("Date"), val, key, parent);
208206 const d = new Date(val);
209207 if (isNaN(d.valueOf())) {
210208 return invalidValue(l("Date"), val, key, parent);
211209 }
212- const date = typeof val === "string" ? val.slice(0, 10) : null;
213- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
214- return invalidValue(l("Date"), val, key, parent);
215210 return d;
216211 }
Mjavascript-prop-typesdefault / toplevel.js+3 −3
@@ -43,7 +43,7 @@ _Extra = PropTypes.shape({
4343 });
4444 _Person = PropTypes.shape({
4545 "bioguideid": PropTypes.oneOfType([PropTypes.string]).isRequired,
46- "birthday": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
46+ "birthday": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
4747 "cspanid": PropTypes.oneOfType([Integer]).isRequired,
4848 "firstname": PropTypes.oneOfType([PropTypes.string]).isRequired,
4949 "gender": _Gender,
@@ -67,7 +67,7 @@ _Object = PropTypes.shape({
6767 "current": PropTypes.oneOfType([PropTypes.bool]).isRequired,
6868 "description": PropTypes.oneOfType([PropTypes.string]).isRequired,
6969 "district": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
70- "enddate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
70+ "enddate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
7171 "extra": _Extra,
7272 "id": PropTypes.oneOfType([Integer]).isRequired,
7373 "leadership_title": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
@@ -80,7 +80,7 @@ _Object = PropTypes.shape({
8080 "senator_class_label": _SenatorClassLabel,
8181 "senator_rank": _SenatorRank,
8282 "senator_rank_label": _SenatorRankLabel,
83- "startdate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
83+ "startdate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
8484 "state": PropTypes.oneOfType([PropTypes.string]).isRequired,
8585 "title": _Title,
8686 "title_long": _RoleTypeLabel,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -80,7 +80,7 @@ export type Title = S.Schema.Type<typeof Title>;
8080
8181 export class Person extends S.Class<Person>("Person")({
8282 "bioguideid": S.String,
83- "birthday": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
83+ "birthday": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
8484 "cspanid": S.Int,
8585 "firstname": S.String,
8686 "gender": Gender,
@@ -113,7 +113,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
113113 "current": S.Boolean,
114114 "description": S.String,
115115 "district": S.Null,
116- "enddate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
116+ "enddate": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
117117 "extra": Extra,
118118 "id": S.Int,
119119 "leadership_title": S.NullOr(S.String),
@@ -126,7 +126,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
126126 "senator_class_label": SenatorClassLabel,
127127 "senator_rank": SenatorRank,
128128 "senator_rank_label": SenatorRankLabel,
129- "startdate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
129+ "startdate": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
130130 "state": S.String,
131131 "title": Title,
132132 "title_long": RoleTypeLabel,
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -180,15 +180,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
180180 if (val === null) {
181181 return null;
182182 }
183- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
184- return invalidValue(l("Date"), val, key, parent);
185183 const d = new Date(val);
186184 if (isNaN(d.valueOf())) {
187185 return invalidValue(l("Date"), val, key, parent);
188186 }
189- const date = typeof val === "string" ? val.slice(0, 10) : null;
190- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
191- return invalidValue(l("Date"), val, key, parent);
192187 return d;
193188 }
Test case

test/inputs/json/misc/2df80.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -169,15 +169,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
169169 if (val === null) {
170170 return null;
171171 }
172- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
173- return invalidValue(l("Date"), val, key, parent);
174172 const d = new Date(val);
175173 if (isNaN(d.valueOf())) {
176174 return invalidValue(l("Date"), val, key, parent);
177175 }
178- const date = typeof val === "string" ? val.slice(0, 10) : null;
179- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
180- return invalidValue(l("Date"), val, key, parent);
181176 return d;
182177 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -125,15 +125,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
125125 if (val === null) {
126126 return null;
127127 }
128- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
129- return invalidValue(l("Date"), val, key, parent);
130128 const d = new Date(val);
131129 if (isNaN(d.valueOf())) {
132130 return invalidValue(l("Date"), val, key, parent);
133131 }
134- const date = typeof val === "string" ? val.slice(0, 10) : null;
135- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
136- return invalidValue(l("Date"), val, key, parent);
137132 return d;
138133 }
Test case

test/inputs/json/misc/31189.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -124,15 +124,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
124124 if (val === null) {
125125 return null;
126126 }
127- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
128- return invalidValue(l("Date"), val, key, parent);
129127 const d = new Date(val);
130128 if (isNaN(d.valueOf())) {
131129 return invalidValue(l("Date"), val, key, parent);
132130 }
133- const date = typeof val === "string" ? val.slice(0, 10) : null;
134- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
135- return invalidValue(l("Date"), val, key, parent);
136131 return d;
137132 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -26,7 +26,7 @@ _Rates = PropTypes.shape({
2626 "super_reduced": PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([null])]),
2727 });
2828 _Period = PropTypes.shape({
29- "effective_from": PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), _EffectiveFromEnum])]).isRequired,
29+ "effective_from": PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), _EffectiveFromEnum])]).isRequired,
3030 "rates": _Rates,
3131 });
3232 _Rate = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -16,7 +16,7 @@ export class Rates extends S.Class<Rates>("Rates")({
1616 }) {}
1717
1818 export class Period extends S.Class<Period>("Period")({
19- "effective_from": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), EffectiveFromEnum),
19+ "effective_from": S.Union(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)), EffectiveFromEnum),
2020 "rates": Rates,
2121 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -123,15 +123,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
123123 if (val === null) {
124124 return null;
125125 }
126- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
127- return invalidValue(l("Date"), val, key, parent);
128126 const d = new Date(val);
129127 if (isNaN(d.valueOf())) {
130128 return invalidValue(l("Date"), val, key, parent);
131129 }
132- const date = typeof val === "string" ? val.slice(0, 10) : null;
133- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
134- return invalidValue(l("Date"), val, key, parent);
135130 return d;
136131 }
Test case

test/inputs/json/misc/32431.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -167,15 +167,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
167167 if (val === null) {
168168 return null;
169169 }
170- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
171- return invalidValue(l("Date"), val, key, parent);
172170 const d = new Date(val);
173171 if (isNaN(d.valueOf())) {
174172 return invalidValue(l("Date"), val, key, parent);
175173 }
176- const date = typeof val === "string" ? val.slice(0, 10) : null;
177- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
178- return invalidValue(l("Date"), val, key, parent);
179174 return d;
180175 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -159,15 +159,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
159159 if (val === null) {
160160 return null;
161161 }
162- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
163- return invalidValue(l("Date"), val, key, parent);
164162 const d = new Date(val);
165163 if (isNaN(d.valueOf())) {
166164 return invalidValue(l("Date"), val, key, parent);
167165 }
168- const date = typeof val === "string" ? val.slice(0, 10) : null;
169- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
170- return invalidValue(l("Date"), val, key, parent);
171166 return d;
172167 }
Test case

test/inputs/json/misc/32d5c.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1515
1616 let _TopLevel;
1717 _TopLevel = PropTypes.shape({
18- "BirthDate": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
18+ "BirthDate": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
1919 "BirthDateIsProtected": PropTypes.oneOfType([PropTypes.bool]).isRequired,
2020 "GenderTypeID": PropTypes.oneOfType([Integer]).isRequired,
2121 "Notes": PropTypes.oneOfType([PropTypes.string]).isRequired,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -23,7 +23,7 @@ def from_str(x: Any) -> str:
2323
2424
2525 def from_datetime(x: Any) -> datetime.datetime:
26- return dateutil.parser.parse(x)
26+ return dateutil.parser.isoparse(x)
2727
2828
2929 def from_none(x: Any) -> Any:
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
5- "BirthDate": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
5+ "BirthDate": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10)))),
66 "BirthDateIsProtected": S.Boolean,
77 "GenderTypeID": S.Int,
88 "Notes": S.String,
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/json/misc/337ed.json

6 generated files · +13 −28
Mflowdefault / TopLevel.js+0 −5
@@ -164,15 +164,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
164164 if (val === null) {
165165 return null;
166166 }
167- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
168- return invalidValue(l("Date"), val, key, parent);
169167 const d = new Date(val);
170168 if (isNaN(d.valueOf())) {
171169 return invalidValue(l("Date"), val, key, parent);
172170 }
173- const date = typeof val === "string" ? val.slice(0, 10) : null;
174- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
175- return invalidValue(l("Date"), val, key, parent);
176171 return d;
177172 }
Mjavascript-prop-typesdefault / toplevel.js+6 −6
@@ -24,23 +24,23 @@ _Facets = PropTypes.shape({
2424 });
2525 _CustomIncome = PropTypes.shape({
2626 "amount": PropTypes.oneOfType([Integer]).isRequired,
27- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
27+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2828 "id": PropTypes.oneOfType([PropTypes.string]).isRequired,
2929 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
3030 "status": _Status,
3131 "type": _CustomIncomeType,
32- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
32+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
3333 "uri": PropTypes.oneOfType([PropTypes.string]).isRequired,
3434 });
3535 _Result = PropTypes.shape({
3636 "cost_absolute": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
3737 "cost_max": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
3838 "cost_min": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
39- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
39+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
4040 "customIncomes": PropTypes.oneOfType([PropTypes.arrayOf(_CustomIncome)]).isRequired,
4141 "direct_rep_costs_max": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
4242 "direct_rep_costs_min": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
43- "end_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
43+ "end_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
4444 "eur_sources_grants": PropTypes.oneOfType([Integer]).isRequired,
4545 "eur_sources_grants_src": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
4646 "eur_sources_procurement": PropTypes.oneOfType([Integer]).isRequired,
@@ -56,14 +56,14 @@ _Result = PropTypes.shape({
5656 "public_financing_national": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
5757 "public_financing_total": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
5858 "representative": PropTypes.oneOfType([PropTypes.string]).isRequired,
59- "start_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
59+ "start_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
6060 "status": _Status,
6161 "total_budget": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
6262 "turnover_absolute": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
6363 "turnover_max": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
6464 "turnover_min": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
6565 "type": _ResultType,
66- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
66+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
6767 "uri": PropTypes.oneOfType([PropTypes.string]).isRequired,
6868 });
6969 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -15,7 +15,7 @@ def from_int(x: Any) -> int:
1515
1616
1717 def from_datetime(x: Any) -> datetime.datetime:
18- return dateutil.parser.parse(x)
18+ return dateutil.parser.isoparse(x)
1919
2020
2121 def from_str(x: Any) -> str:
Mtypescript-effect-schemadefault / TopLevel.ts+6 −6
@@ -24,12 +24,12 @@ export type ResultType = S.Schema.Type<typeof ResultType>;
2424
2525 export class CustomIncome extends S.Class<CustomIncome>("CustomIncome")({
2626 "amount": S.Int,
27- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
27+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
2828 "id": S.String,
2929 "name": S.String,
3030 "status": Status,
3131 "type": CustomIncomeType,
32- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
32+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
3333 "uri": S.String,
3434 }) {}
3535
@@ -37,11 +37,11 @@ export class Result extends S.Class<Result>("Result")({
3737 "cost_absolute": S.NullOr(S.Int),
3838 "cost_max": S.NullOr(S.Int),
3939 "cost_min": S.NullOr(S.Int),
40- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
40+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
4141 "customIncomes": S.Array(CustomIncome),
4242 "direct_rep_costs_max": S.Null,
4343 "direct_rep_costs_min": S.Null,
44- "end_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
44+ "end_date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
4545 "eur_sources_grants": S.Int,
4646 "eur_sources_grants_src": S.NullOr(S.String),
4747 "eur_sources_procurement": S.Int,
@@ -57,14 +57,14 @@ export class Result extends S.Class<Result>("Result")({
5757 "public_financing_national": S.NullOr(S.Int),
5858 "public_financing_total": S.NullOr(S.Int),
5959 "representative": S.String,
60- "start_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
60+ "start_date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
6161 "status": Status,
6262 "total_budget": S.NullOr(S.Int),
6363 "turnover_absolute": S.NullOr(S.Int),
6464 "turnover_max": S.NullOr(S.Int),
6565 "turnover_min": S.NullOr(S.Int),
6666 "type": ResultType,
67- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
67+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
6868 "uri": S.String,
6969 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -154,15 +154,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
154154 if (val === null) {
155155 return null;
156156 }
157- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
158- return invalidValue(l("Date"), val, key, parent);
159157 const d = new Date(val);
160158 if (isNaN(d.valueOf())) {
161159 return invalidValue(l("Date"), val, key, parent);
162160 }
163- const date = typeof val === "string" ? val.slice(0, 10) : null;
164- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
165- return invalidValue(l("Date"), val, key, parent);
166161 return d;
167162 }
Test case

test/inputs/json/misc/33d2e.json

5 generated files · +4 −19
Mflowdefault / TopLevel.js+0 −5
@@ -149,15 +149,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
149149 if (val === null) {
150150 return null;
151151 }
152- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
153- return invalidValue(l("Date"), val, key, parent);
154152 const d = new Date(val);
155153 if (isNaN(d.valueOf())) {
156154 return invalidValue(l("Date"), val, key, parent);
157155 }
158- const date = typeof val === "string" ? val.slice(0, 10) : null;
159- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
160- return invalidValue(l("Date"), val, key, parent);
161156 return d;
162157 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -33,11 +33,11 @@ _Prize = PropTypes.shape({
3333 "year": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
3434 });
3535 _Laureate = PropTypes.shape({
36- "born": PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), _BornEnum])]).isRequired,
36+ "born": PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), _BornEnum])]).isRequired,
3737 "bornCity": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
3838 "bornCountry": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
3939 "bornCountryCode": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
40- "died": PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), _BornEnum])]).isRequired,
40+ "died": PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), _BornEnum])]).isRequired,
4141 "diedCity": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
4242 "diedCountry": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
4343 "diedCountryCode": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -43,11 +43,11 @@ export class Prize extends S.Class<Prize>("Prize")({
4343 }) {}
4444
4545 export class Laureate extends S.Class<Laureate>("Laureate")({
46- "born": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), BornEnum),
46+ "born": S.Union(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)), BornEnum),
4747 "bornCity": S.optional(S.String),
4848 "bornCountry": S.optional(S.String),
4949 "bornCountryCode": S.optional(S.String),
50- "died": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), BornEnum),
50+ "died": S.Union(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)), BornEnum),
5151 "diedCity": S.optional(S.String),
5252 "diedCountry": S.optional(S.String),
5353 "diedCountryCode": S.optional(S.String),
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -137,15 +137,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
137137 if (val === null) {
138138 return null;
139139 }
140- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
141- return invalidValue(l("Date"), val, key, parent);
142140 const d = new Date(val);
143141 if (isNaN(d.valueOf())) {
144142 return invalidValue(l("Date"), val, key, parent);
145143 }
146- const date = typeof val === "string" ? val.slice(0, 10) : null;
147- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
148- return invalidValue(l("Date"), val, key, parent);
149144 return d;
150145 }
Test case

test/inputs/json/misc/34702.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -184,15 +184,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
184184 if (val === null) {
185185 return null;
186186 }
187- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
188- return invalidValue(l("Date"), val, key, parent);
189187 const d = new Date(val);
190188 if (isNaN(d.valueOf())) {
191189 return invalidValue(l("Date"), val, key, parent);
192190 }
193- const date = typeof val === "string" ? val.slice(0, 10) : null;
194- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
195- return invalidValue(l("Date"), val, key, parent);
196191 return d;
197192 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -151,15 +151,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
151151 if (val === null) {
152152 return null;
153153 }
154- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
155- return invalidValue(l("Date"), val, key, parent);
156154 const d = new Date(val);
157155 if (isNaN(d.valueOf())) {
158156 return invalidValue(l("Date"), val, key, parent);
159157 }
160- const date = typeof val === "string" ? val.slice(0, 10) : null;
161- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
162- return invalidValue(l("Date"), val, key, parent);
163158 return d;
164159 }
Test case

test/inputs/json/misc/3536b.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -131,15 +131,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
131131 if (val === null) {
132132 return null;
133133 }
134- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
135- return invalidValue(l("Date"), val, key, parent);
136134 const d = new Date(val);
137135 if (isNaN(d.valueOf())) {
138136 return invalidValue(l("Date"), val, key, parent);
139137 }
140- const date = typeof val === "string" ? val.slice(0, 10) : null;
141- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
142- return invalidValue(l("Date"), val, key, parent);
143138 return d;
144139 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -125,15 +125,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
125125 if (val === null) {
126126 return null;
127127 }
128- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
129- return invalidValue(l("Date"), val, key, parent);
130128 const d = new Date(val);
131129 if (isNaN(d.valueOf())) {
132130 return invalidValue(l("Date"), val, key, parent);
133131 }
134- const date = typeof val === "string" ? val.slice(0, 10) : null;
135- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
136- return invalidValue(l("Date"), val, key, parent);
137132 return d;
138133 }
Test case

test/inputs/json/misc/3659d.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/36d5d.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/3a6b3.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/3e9a3.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -121,15 +121,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
121121 if (val === null) {
122122 return null;
123123 }
124- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
125- return invalidValue(l("Date"), val, key, parent);
126124 const d = new Date(val);
127125 if (isNaN(d.valueOf())) {
128126 return invalidValue(l("Date"), val, key, parent);
129127 }
130- const date = typeof val === "string" ? val.slice(0, 10) : null;
131- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
132- return invalidValue(l("Date"), val, key, parent);
133128 return d;
134129 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -121,15 +121,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
121121 if (val === null) {
122122 return null;
123123 }
124- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
125- return invalidValue(l("Date"), val, key, parent);
126124 const d = new Date(val);
127125 if (isNaN(d.valueOf())) {
128126 return invalidValue(l("Date"), val, key, parent);
129127 }
130- const date = typeof val === "string" ? val.slice(0, 10) : null;
131- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
132- return invalidValue(l("Date"), val, key, parent);
133128 return d;
134129 }
Test case

test/inputs/json/misc/3f1ce.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -197,15 +197,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
197197 if (val === null) {
198198 return null;
199199 }
200- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
201- return invalidValue(l("Date"), val, key, parent);
202200 const d = new Date(val);
203201 if (isNaN(d.valueOf())) {
204202 return invalidValue(l("Date"), val, key, parent);
205203 }
206- const date = typeof val === "string" ? val.slice(0, 10) : null;
207- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
208- return invalidValue(l("Date"), val, key, parent);
209204 return d;
210205 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -109,7 +109,7 @@ _Results = PropTypes.shape({
109109 });
110110 _Query = PropTypes.shape({
111111 "count": PropTypes.oneOfType([Integer]).isRequired,
112- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
112+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
113113 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
114114 "results": _Results,
115115 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
4343
4444
4545 def from_datetime(x: Any) -> datetime.datetime:
46- return dateutil.parser.parse(x)
46+ return dateutil.parser.isoparse(x)
4747
4848
4949 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -99,7 +99,7 @@ export class Results extends S.Class<Results>("Results")({
9999
100100 export class Query extends S.Class<Query>("Query")({
101101 "count": S.Int,
102- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
102+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
103103 "lang": S.String,
104104 "results": Results,
105105 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -196,15 +196,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
196196 if (val === null) {
197197 return null;
198198 }
199- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
200- return invalidValue(l("Date"), val, key, parent);
201199 const d = new Date(val);
202200 if (isNaN(d.valueOf())) {
203201 return invalidValue(l("Date"), val, key, parent);
204202 }
205- const date = typeof val === "string" ? val.slice(0, 10) : null;
206- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
207- return invalidValue(l("Date"), val, key, parent);
208203 return d;
209204 }
Test case

test/inputs/json/misc/421d4.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -210,15 +210,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
210210 if (val === null) {
211211 return null;
212212 }
213- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
214- return invalidValue(l("Date"), val, key, parent);
215213 const d = new Date(val);
216214 if (isNaN(d.valueOf())) {
217215 return invalidValue(l("Date"), val, key, parent);
218216 }
219- const date = typeof val === "string" ? val.slice(0, 10) : null;
220- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
221- return invalidValue(l("Date"), val, key, parent);
222217 return d;
223218 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -207,15 +207,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
207207 if (val === null) {
208208 return null;
209209 }
210- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
211- return invalidValue(l("Date"), val, key, parent);
212210 const d = new Date(val);
213211 if (isNaN(d.valueOf())) {
214212 return invalidValue(l("Date"), val, key, parent);
215213 }
216- const date = typeof val === "string" ? val.slice(0, 10) : null;
217- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
218- return invalidValue(l("Date"), val, key, parent);
219214 return d;
220215 }
Test case

test/inputs/json/misc/437e7.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -205,15 +205,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
205205 if (val === null) {
206206 return null;
207207 }
208- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
209- return invalidValue(l("Date"), val, key, parent);
210208 const d = new Date(val);
211209 if (isNaN(d.valueOf())) {
212210 return invalidValue(l("Date"), val, key, parent);
213211 }
214- const date = typeof val === "string" ? val.slice(0, 10) : null;
215- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
216- return invalidValue(l("Date"), val, key, parent);
217212 return d;
218213 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -200,15 +200,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
200200 if (val === null) {
201201 return null;
202202 }
203- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
204- return invalidValue(l("Date"), val, key, parent);
205203 const d = new Date(val);
206204 if (isNaN(d.valueOf())) {
207205 return invalidValue(l("Date"), val, key, parent);
208206 }
209- const date = typeof val === "string" ? val.slice(0, 10) : null;
210- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
211- return invalidValue(l("Date"), val, key, parent);
212207 return d;
213208 }
Test case

test/inputs/json/misc/43970.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/misc/43eaf.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/458db.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -138,15 +138,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
138138 if (val === null) {
139139 return null;
140140 }
141- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
142- return invalidValue(l("Date"), val, key, parent);
143141 const d = new Date(val);
144142 if (isNaN(d.valueOf())) {
145143 return invalidValue(l("Date"), val, key, parent);
146144 }
147- const date = typeof val === "string" ? val.slice(0, 10) : null;
148- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
149- return invalidValue(l("Date"), val, key, parent);
150145 return d;
151146 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -137,15 +137,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
137137 if (val === null) {
138138 return null;
139139 }
140- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
141- return invalidValue(l("Date"), val, key, parent);
142140 const d = new Date(val);
143141 if (isNaN(d.valueOf())) {
144142 return invalidValue(l("Date"), val, key, parent);
145143 }
146- const date = typeof val === "string" ? val.slice(0, 10) : null;
147- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
148- return invalidValue(l("Date"), val, key, parent);
149144 return d;
150145 }
Test case

test/inputs/json/misc/4961a.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/4a0d7.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/4a455.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -139,15 +139,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
139139 if (val === null) {
140140 return null;
141141 }
142- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
143- return invalidValue(l("Date"), val, key, parent);
144142 const d = new Date(val);
145143 if (isNaN(d.valueOf())) {
146144 return invalidValue(l("Date"), val, key, parent);
147145 }
148- const date = typeof val === "string" ? val.slice(0, 10) : null;
149- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
150- return invalidValue(l("Date"), val, key, parent);
151146 return d;
152147 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -136,15 +136,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
136136 if (val === null) {
137137 return null;
138138 }
139- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
140- return invalidValue(l("Date"), val, key, parent);
141139 const d = new Date(val);
142140 if (isNaN(d.valueOf())) {
143141 return invalidValue(l("Date"), val, key, parent);
144142 }
145- const date = typeof val === "string" ? val.slice(0, 10) : null;
146- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
147- return invalidValue(l("Date"), val, key, parent);
148143 return d;
149144 }
Test case

test/inputs/json/misc/4c547.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -108,7 +108,7 @@ _Results = PropTypes.shape({
108108 });
109109 _Query = PropTypes.shape({
110110 "count": PropTypes.oneOfType([Integer]).isRequired,
111- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
111+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
112112 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
113113 "results": _Results,
114114 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
3636
3737
3838 def from_datetime(x: Any) -> datetime.datetime:
39- return dateutil.parser.parse(x)
39+ return dateutil.parser.isoparse(x)
4040
4141
4242 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
9494
9595 export class Query extends S.Class<Query>("Query")({
9696 "count": S.Int,
97- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
97+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
9898 "lang": S.String,
9999 "results": Results,
100100 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Test case

test/inputs/json/misc/4d6fb.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -244,15 +244,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
244244 if (val === null) {
245245 return null;
246246 }
247- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
248- return invalidValue(l("Date"), val, key, parent);
249247 const d = new Date(val);
250248 if (isNaN(d.valueOf())) {
251249 return invalidValue(l("Date"), val, key, parent);
252250 }
253- const date = typeof val === "string" ? val.slice(0, 10) : null;
254- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
255- return invalidValue(l("Date"), val, key, parent);
256251 return d;
257252 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -234,15 +234,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
234234 if (val === null) {
235235 return null;
236236 }
237- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
238- return invalidValue(l("Date"), val, key, parent);
239237 const d = new Date(val);
240238 if (isNaN(d.valueOf())) {
241239 return invalidValue(l("Date"), val, key, parent);
242240 }
243- const date = typeof val === "string" ? val.slice(0, 10) : null;
244- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
245- return invalidValue(l("Date"), val, key, parent);
246241 return d;
247242 }
Test case

test/inputs/json/misc/4e336.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/54147.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -112,15 +112,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
112112 if (val === null) {
113113 return null;
114114 }
115- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
116- return invalidValue(l("Date"), val, key, parent);
117115 const d = new Date(val);
118116 if (isNaN(d.valueOf())) {
119117 return invalidValue(l("Date"), val, key, parent);
120118 }
121- const date = typeof val === "string" ? val.slice(0, 10) : null;
122- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
123- return invalidValue(l("Date"), val, key, parent);
124119 return d;
125120 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Test case

test/inputs/json/misc/54d32.json

6 generated files · +5 −20
Mflowdefault / TopLevel.js+0 −5
@@ -118,15 +118,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
118118 if (val === null) {
119119 return null;
120120 }
121- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
122- return invalidValue(l("Date"), val, key, parent);
123121 const d = new Date(val);
124122 if (isNaN(d.valueOf())) {
125123 return invalidValue(l("Date"), val, key, parent);
126124 }
127- const date = typeof val === "string" ? val.slice(0, 10) : null;
128- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
129- return invalidValue(l("Date"), val, key, parent);
130125 return d;
131126 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -20,12 +20,12 @@ const _Status = PropTypes.oneOf(['inactive', 'active']);
2020 _Facets = PropTypes.shape({
2121 });
2222 _Result = PropTypes.shape({
23- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
23+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2424 "id": PropTypes.oneOfType([PropTypes.string]).isRequired,
2525 "person_id": PropTypes.oneOfType([PropTypes.string]).isRequired,
2626 "representative_id": PropTypes.oneOfType([PropTypes.string]).isRequired,
2727 "status": _Status,
28- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
28+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2929 });
3030 _TopLevel = PropTypes.shape({
3131 "count": PropTypes.oneOfType([Integer]).isRequired,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -10,7 +10,7 @@ EnumT = TypeVar("EnumT", bound=Enum)
1010
1111
1212 def from_datetime(x: Any) -> datetime.datetime:
13- return dateutil.parser.parse(x)
13+ return dateutil.parser.isoparse(x)
1414
1515
1616 def from_str(x: Any) -> str:
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -8,12 +8,12 @@ export const Status = S.Literal(
88 export type Status = S.Schema.Type<typeof Status>;
99
1010 export class Result extends S.Class<Result>("Result")({
11- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
11+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
1212 "id": S.String,
1313 "person_id": S.String,
1414 "representative_id": S.String,
1515 "status": Status,
16- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
16+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
1717 }) {}
1818
1919 export class Facets extends S.Class<Facets>("Facets")(S.Struct({}).pipe(S.filter(value => typeof value === "object" && value !== null && !Array.isArray(value)))
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -113,15 +113,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
113113 if (val === null) {
114114 return null;
115115 }
116- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
117- return invalidValue(l("Date"), val, key, parent);
118116 const d = new Date(val);
119117 if (isNaN(d.valueOf())) {
120118 return invalidValue(l("Date"), val, key, parent);
121119 }
122- const date = typeof val === "string" ? val.slice(0, 10) : null;
123- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
124- return invalidValue(l("Date"), val, key, parent);
125120 return d;
126121 }
Test case

test/inputs/json/misc/570ec.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -131,15 +131,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
131131 if (val === null) {
132132 return null;
133133 }
134- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
135- return invalidValue(l("Date"), val, key, parent);
136134 const d = new Date(val);
137135 if (isNaN(d.valueOf())) {
138136 return invalidValue(l("Date"), val, key, parent);
139137 }
140- const date = typeof val === "string" ? val.slice(0, 10) : null;
141- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
142- return invalidValue(l("Date"), val, key, parent);
143138 return d;
144139 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -128,15 +128,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
128128 if (val === null) {
129129 return null;
130130 }
131- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
132- return invalidValue(l("Date"), val, key, parent);
133131 const d = new Date(val);
134132 if (isNaN(d.valueOf())) {
135133 return invalidValue(l("Date"), val, key, parent);
136134 }
137- const date = typeof val === "string" ? val.slice(0, 10) : null;
138- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
139- return invalidValue(l("Date"), val, key, parent);
140135 return d;
141136 }
Test case

test/inputs/json/misc/5dd0d.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/5eae5.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1515
1616 let _TopLevel;
1717 _TopLevel = PropTypes.shape({
18- "Date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "Date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "ID": PropTypes.oneOfType([Integer]).isRequired,
2020 "Sponsor": PropTypes.oneOfType([PropTypes.string]).isRequired,
2121 "Title": PropTypes.oneOfType([PropTypes.string]).isRequired,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -8,7 +8,7 @@ T = TypeVar("T")
88
99
1010 def from_datetime(x: Any) -> datetime.datetime:
11- return dateutil.parser.parse(x)
11+ return dateutil.parser.isoparse(x)
1212
1313
1414 def from_int(x: Any) -> int:
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
5- "Date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
5+ "Date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
66 "ID": S.Int,
77 "Sponsor": S.String,
88 "Title": S.String,
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/5eb20.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/5f3a1.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/5f7fe.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -284,15 +284,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
284284 if (val === null) {
285285 return null;
286286 }
287- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
288- return invalidValue(l("Date"), val, key, parent);
289287 const d = new Date(val);
290288 if (isNaN(d.valueOf())) {
291289 return invalidValue(l("Date"), val, key, parent);
292290 }
293- const date = typeof val === "string" ? val.slice(0, 10) : null;
294- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
295- return invalidValue(l("Date"), val, key, parent);
296291 return d;
297292 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -281,15 +281,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
281281 if (val === null) {
282282 return null;
283283 }
284- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
285- return invalidValue(l("Date"), val, key, parent);
286284 const d = new Date(val);
287285 if (isNaN(d.valueOf())) {
288286 return invalidValue(l("Date"), val, key, parent);
289287 }
290- const date = typeof val === "string" ? val.slice(0, 10) : null;
291- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
292- return invalidValue(l("Date"), val, key, parent);
293288 return d;
294289 }
Test case

test/inputs/json/misc/617e8.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -283,15 +283,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
283283 if (val === null) {
284284 return null;
285285 }
286- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
287- return invalidValue(l("Date"), val, key, parent);
288286 const d = new Date(val);
289287 if (isNaN(d.valueOf())) {
290288 return invalidValue(l("Date"), val, key, parent);
291289 }
292- const date = typeof val === "string" ? val.slice(0, 10) : null;
293- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
294- return invalidValue(l("Date"), val, key, parent);
295290 return d;
296291 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -280,15 +280,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
280280 if (val === null) {
281281 return null;
282282 }
283- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
284- return invalidValue(l("Date"), val, key, parent);
285283 const d = new Date(val);
286284 if (isNaN(d.valueOf())) {
287285 return invalidValue(l("Date"), val, key, parent);
288286 }
289- const date = typeof val === "string" ? val.slice(0, 10) : null;
290- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
291- return invalidValue(l("Date"), val, key, parent);
292287 return d;
293288 }
Test case

test/inputs/json/misc/61b66.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/6260a.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/65dec.json

5 generated files · +4 −19
Mflowdefault / TopLevel.js+0 −5
@@ -183,15 +183,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
183183 if (val === null) {
184184 return null;
185185 }
186- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
187- return invalidValue(l("Date"), val, key, parent);
188186 const d = new Date(val);
189187 if (isNaN(d.valueOf())) {
190188 return invalidValue(l("Date"), val, key, parent);
191189 }
192- const date = typeof val === "string" ? val.slice(0, 10) : null;
193- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
194- return invalidValue(l("Date"), val, key, parent);
195190 return d;
196191 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -28,7 +28,7 @@ _LegalityElement = PropTypes.shape({
2828 "legality": _LegalityEnum,
2929 });
3030 _Ruling = PropTypes.shape({
31- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
31+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
3232 "text": PropTypes.oneOfType([PropTypes.string]).isRequired,
3333 });
3434 _Card = PropTypes.shape({
@@ -71,7 +71,7 @@ _TopLevel = PropTypes.shape({
7171 "mkm_id": PropTypes.oneOfType([Integer]).isRequired,
7272 "mkm_name": PropTypes.oneOfType([PropTypes.string]).isRequired,
7373 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
74- "releaseDate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
74+ "releaseDate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
7575 "type": PropTypes.oneOfType([PropTypes.string]).isRequired,
7676 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -55,7 +55,7 @@ export const Type = S.Literal(
5555 export type Type = S.Schema.Type<typeof Type>;
5656
5757 export class Ruling extends S.Class<Ruling>("Ruling")({
58- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
58+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
5959 "text": S.String,
6060 }) {}
6161
@@ -105,6 +105,6 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
105105 "mkm_id": S.Int,
106106 "mkm_name": S.String,
107107 "name": S.String,
108- "releaseDate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
108+ "releaseDate": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
109109 "type": S.String,
110110 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -159,15 +159,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
159159 if (val === null) {
160160 return null;
161161 }
162- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
163- return invalidValue(l("Date"), val, key, parent);
164162 const d = new Date(val);
165163 if (isNaN(d.valueOf())) {
166164 return invalidValue(l("Date"), val, key, parent);
167165 }
168- const date = typeof val === "string" ? val.slice(0, 10) : null;
169- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
170- return invalidValue(l("Date"), val, key, parent);
171166 return d;
172167 }
Test case

test/inputs/json/misc/66121.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -140,15 +140,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
140140 if (val === null) {
141141 return null;
142142 }
143- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
144- return invalidValue(l("Date"), val, key, parent);
145143 const d = new Date(val);
146144 if (isNaN(d.valueOf())) {
147145 return invalidValue(l("Date"), val, key, parent);
148146 }
149- const date = typeof val === "string" ? val.slice(0, 10) : null;
150- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
151- return invalidValue(l("Date"), val, key, parent);
152147 return d;
153148 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -131,15 +131,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
131131 if (val === null) {
132132 return null;
133133 }
134- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
135- return invalidValue(l("Date"), val, key, parent);
136134 const d = new Date(val);
137135 if (isNaN(d.valueOf())) {
138136 return invalidValue(l("Date"), val, key, parent);
139137 }
140- const date = typeof val === "string" ? val.slice(0, 10) : null;
141- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
142- return invalidValue(l("Date"), val, key, parent);
143138 return d;
144139 }
Test case

test/inputs/json/misc/6617c.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/json/misc/67c03.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/json/misc/68c30.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -127,15 +127,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
127127 if (val === null) {
128128 return null;
129129 }
130- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
131- return invalidValue(l("Date"), val, key, parent);
132130 const d = new Date(val);
133131 if (isNaN(d.valueOf())) {
134132 return invalidValue(l("Date"), val, key, parent);
135133 }
136- const date = typeof val === "string" ? val.slice(0, 10) : null;
137- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
138- return invalidValue(l("Date"), val, key, parent);
139134 return d;
140135 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -127,15 +127,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
127127 if (val === null) {
128128 return null;
129129 }
130- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
131- return invalidValue(l("Date"), val, key, parent);
132130 const d = new Date(val);
133131 if (isNaN(d.valueOf())) {
134132 return invalidValue(l("Date"), val, key, parent);
135133 }
136- const date = typeof val === "string" ? val.slice(0, 10) : null;
137- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
138- return invalidValue(l("Date"), val, key, parent);
139134 return d;
140135 }
Test case

test/inputs/json/misc/6c155.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -149,15 +149,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
149149 if (val === null) {
150150 return null;
151151 }
152- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
153- return invalidValue(l("Date"), val, key, parent);
154152 const d = new Date(val);
155153 if (isNaN(d.valueOf())) {
156154 return invalidValue(l("Date"), val, key, parent);
157155 }
158- const date = typeof val === "string" ? val.slice(0, 10) : null;
159- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
160- return invalidValue(l("Date"), val, key, parent);
161156 return d;
162157 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -149,15 +149,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
149149 if (val === null) {
150150 return null;
151151 }
152- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
153- return invalidValue(l("Date"), val, key, parent);
154152 const d = new Date(val);
155153 if (isNaN(d.valueOf())) {
156154 return invalidValue(l("Date"), val, key, parent);
157155 }
158- const date = typeof val === "string" ? val.slice(0, 10) : null;
159- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
160- return invalidValue(l("Date"), val, key, parent);
161156 return d;
162157 }
Test case

test/inputs/json/misc/6de06.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -244,15 +244,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
244244 if (val === null) {
245245 return null;
246246 }
247- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
248- return invalidValue(l("Date"), val, key, parent);
249247 const d = new Date(val);
250248 if (isNaN(d.valueOf())) {
251249 return invalidValue(l("Date"), val, key, parent);
252250 }
253- const date = typeof val === "string" ? val.slice(0, 10) : null;
254- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
255- return invalidValue(l("Date"), val, key, parent);
256251 return d;
257252 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -239,15 +239,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
239239 if (val === null) {
240240 return null;
241241 }
242- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
243- return invalidValue(l("Date"), val, key, parent);
244242 const d = new Date(val);
245243 if (isNaN(d.valueOf())) {
246244 return invalidValue(l("Date"), val, key, parent);
247245 }
248- const date = typeof val === "string" ? val.slice(0, 10) : null;
249- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
250- return invalidValue(l("Date"), val, key, parent);
251246 return d;
252247 }
Test case

test/inputs/json/misc/6dec6.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -199,15 +199,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
199199 if (val === null) {
200200 return null;
201201 }
202- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
203- return invalidValue(l("Date"), val, key, parent);
204202 const d = new Date(val);
205203 if (isNaN(d.valueOf())) {
206204 return invalidValue(l("Date"), val, key, parent);
207205 }
208- const date = typeof val === "string" ? val.slice(0, 10) : null;
209- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
210- return invalidValue(l("Date"), val, key, parent);
211206 return d;
212207 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -109,7 +109,7 @@ _Results = PropTypes.shape({
109109 });
110110 _Query = PropTypes.shape({
111111 "count": PropTypes.oneOfType([Integer]).isRequired,
112- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
112+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
113113 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
114114 "results": _Results,
115115 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
4343
4444
4545 def from_datetime(x: Any) -> datetime.datetime:
46- return dateutil.parser.parse(x)
46+ return dateutil.parser.isoparse(x)
4747
4848
4949 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -101,7 +101,7 @@ export class Results extends S.Class<Results>("Results")({
101101
102102 export class Query extends S.Class<Query>("Query")({
103103 "count": S.Int,
104- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
104+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
105105 "lang": S.String,
106106 "results": Results,
107107 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -196,15 +196,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
196196 if (val === null) {
197197 return null;
198198 }
199- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
200- return invalidValue(l("Date"), val, key, parent);
201199 const d = new Date(val);
202200 if (isNaN(d.valueOf())) {
203201 return invalidValue(l("Date"), val, key, parent);
204202 }
205- const date = typeof val === "string" ? val.slice(0, 10) : null;
206- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
207- return invalidValue(l("Date"), val, key, parent);
208203 return d;
209204 }
Test case

test/inputs/json/misc/6eb00.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/misc/70c77.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/734ad.json

6 generated files · +9 −24
Mflowdefault / TopLevel.js+0 −5
@@ -170,15 +170,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
170170 if (val === null) {
171171 return null;
172172 }
173- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
174- return invalidValue(l("Date"), val, key, parent);
175173 const d = new Date(val);
176174 if (isNaN(d.valueOf())) {
177175 return invalidValue(l("Date"), val, key, parent);
178176 }
179- const date = typeof val === "string" ? val.slice(0, 10) : null;
180- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
181- return invalidValue(l("Date"), val, key, parent);
182177 return d;
183178 }
Mjavascript-prop-typesdefault / toplevel.js+4 −4
@@ -39,7 +39,7 @@ _Result = PropTypes.shape({
3939 "be_office_town": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
4040 "code_of_conduct": PropTypes.oneOfType([PropTypes.string]).isRequired,
4141 "contact_country": PropTypes.oneOfType([Integer]).isRequired,
42- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
42+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
4343 "entity": PropTypes.oneOfType([PropTypes.string]).isRequired,
4444 "goals": PropTypes.oneOfType([PropTypes.string]).isRequired,
4545 "head": PropTypes.oneOfType([PropTypes.string]).isRequired,
@@ -54,7 +54,7 @@ _Result = PropTypes.shape({
5454 "id": PropTypes.oneOfType([PropTypes.string]).isRequired,
5555 "identification_code": PropTypes.oneOfType([PropTypes.string]).isRequired,
5656 "info_members": PropTypes.oneOfType([PropTypes.string]).isRequired,
57- "last_update_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
57+ "last_update_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
5858 "legal": PropTypes.oneOfType([PropTypes.string]).isRequired,
5959 "legal_status": PropTypes.oneOfType([PropTypes.string]).isRequired,
6060 "main_category": PropTypes.oneOfType([Integer]).isRequired,
@@ -70,12 +70,12 @@ _Result = PropTypes.shape({
7070 "networking": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
7171 "number_of_natural_persons": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
7272 "other_code_of_conduct": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
73- "registration_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
73+ "registration_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
7474 "status": _Status,
7575 "structure_members": PropTypes.oneOfType([PropTypes.string]).isRequired,
7676 "sub_category": PropTypes.oneOfType([Integer]).isRequired,
7777 "sub_category_title": PropTypes.oneOfType([PropTypes.string]).isRequired,
78- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
78+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
7979 "uri": PropTypes.oneOfType([PropTypes.string]).isRequired,
8080 "web_site_url": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
8181 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -20,7 +20,7 @@ def from_int(x: Any) -> int:
2020
2121
2222 def from_datetime(x: Any) -> datetime.datetime:
23- return dateutil.parser.parse(x)
23+ return dateutil.parser.isoparse(x)
2424
2525
2626 def from_float(x: Any) -> float:
Mtypescript-effect-schemadefault / TopLevel.ts+4 −4
@@ -27,7 +27,7 @@ export class Result extends S.Class<Result>("Result")({
2727 "be_office_town": S.optional(S.String),
2828 "code_of_conduct": S.String,
2929 "contact_country": S.Int,
30- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
30+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
3131 "entity": S.String,
3232 "goals": S.String,
3333 "head": S.String,
@@ -42,7 +42,7 @@ export class Result extends S.Class<Result>("Result")({
4242 "id": S.String,
4343 "identification_code": S.String,
4444 "info_members": S.String,
45- "last_update_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
45+ "last_update_date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
4646 "legal": S.String,
4747 "legal_status": S.String,
4848 "main_category": S.Int,
@@ -58,12 +58,12 @@ export class Result extends S.Class<Result>("Result")({
5858 "networking": S.NullOr(S.String),
5959 "number_of_natural_persons": S.NullOr(S.Int),
6060 "other_code_of_conduct": S.NullOr(S.String),
61- "registration_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
61+ "registration_date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
6262 "status": Status,
6363 "structure_members": S.String,
6464 "sub_category": S.Int,
6565 "sub_category_title": S.String,
66- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
66+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
6767 "uri": S.String,
6868 "web_site_url": S.NullOr(S.String),
6969 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -165,15 +165,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
165165 if (val === null) {
166166 return null;
167167 }
168- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
169- return invalidValue(l("Date"), val, key, parent);
170168 const d = new Date(val);
171169 if (isNaN(d.valueOf())) {
172170 return invalidValue(l("Date"), val, key, parent);
173171 }
174- const date = typeof val === "string" ? val.slice(0, 10) : null;
175- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
176- return invalidValue(l("Date"), val, key, parent);
177172 return d;
178173 }
Test case

test/inputs/json/misc/75912.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/7681c.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -212,15 +212,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
212212 if (val === null) {
213213 return null;
214214 }
215- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
216- return invalidValue(l("Date"), val, key, parent);
217215 const d = new Date(val);
218216 if (isNaN(d.valueOf())) {
219217 return invalidValue(l("Date"), val, key, parent);
220218 }
221- const date = typeof val === "string" ? val.slice(0, 10) : null;
222- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
223- return invalidValue(l("Date"), val, key, parent);
224219 return d;
225220 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -204,15 +204,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
204204 if (val === null) {
205205 return null;
206206 }
207- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
208- return invalidValue(l("Date"), val, key, parent);
209207 const d = new Date(val);
210208 if (isNaN(d.valueOf())) {
211209 return invalidValue(l("Date"), val, key, parent);
212210 }
213- const date = typeof val === "string" ? val.slice(0, 10) : null;
214- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
215- return invalidValue(l("Date"), val, key, parent);
216211 return d;
217212 }
Test case

test/inputs/json/misc/76ae1.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -280,15 +280,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
280280 if (val === null) {
281281 return null;
282282 }
283- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
284- return invalidValue(l("Date"), val, key, parent);
285283 const d = new Date(val);
286284 if (isNaN(d.valueOf())) {
287285 return invalidValue(l("Date"), val, key, parent);
288286 }
289- const date = typeof val === "string" ? val.slice(0, 10) : null;
290- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
291- return invalidValue(l("Date"), val, key, parent);
292287 return d;
293288 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -277,15 +277,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
277277 if (val === null) {
278278 return null;
279279 }
280- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
281- return invalidValue(l("Date"), val, key, parent);
282280 const d = new Date(val);
283281 if (isNaN(d.valueOf())) {
284282 return invalidValue(l("Date"), val, key, parent);
285283 }
286- const date = typeof val === "string" ? val.slice(0, 10) : null;
287- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
288- return invalidValue(l("Date"), val, key, parent);
289284 return d;
290285 }
Test case

test/inputs/json/misc/77392.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -123,15 +123,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
123123 if (val === null) {
124124 return null;
125125 }
126- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
127- return invalidValue(l("Date"), val, key, parent);
128126 const d = new Date(val);
129127 if (isNaN(d.valueOf())) {
130128 return invalidValue(l("Date"), val, key, parent);
131129 }
132- const date = typeof val === "string" ? val.slice(0, 10) : null;
133- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
134- return invalidValue(l("Date"), val, key, parent);
135130 return d;
136131 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -17,7 +17,7 @@ const _OrbitClass = PropTypes.oneOf(['Apollo', 'Amor', 'Aten', 'Comet', 'Jupiter
1717 const _Pha = PropTypes.oneOf(['Y', 'N', 'n/a']);
1818 _TopLevel = PropTypes.shape({
1919 "designation": PropTypes.oneOfType([PropTypes.string]).isRequired,
20- "discovery_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
20+ "discovery_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2121 "h_mag": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
2222 "i_deg": PropTypes.oneOfType([PropTypes.string]).isRequired,
2323 "moid_au": PropTypes.oneOfType([PropTypes.string]).isRequired,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -15,7 +15,7 @@ def from_str(x: Any) -> str:
1515
1616
1717 def from_datetime(x: Any) -> datetime.datetime:
18- return dateutil.parser.parse(x)
18+ return dateutil.parser.isoparse(x)
1919
2020
2121 def from_none(x: Any) -> Any:
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -24,7 +24,7 @@ export type Pha = S.Schema.Type<typeof Pha>;
2424
2525 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
2626 "designation": S.String,
27- "discovery_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
27+ "discovery_date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
2828 "h_mag": S.optional(S.String),
2929 "i_deg": S.String,
3030 "moid_au": S.String,
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -111,15 +111,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
111111 if (val === null) {
112112 return null;
113113 }
114- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
115- return invalidValue(l("Date"), val, key, parent);
116114 const d = new Date(val);
117115 if (isNaN(d.valueOf())) {
118116 return invalidValue(l("Date"), val, key, parent);
119117 }
120- const date = typeof val === "string" ? val.slice(0, 10) : null;
121- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
122- return invalidValue(l("Date"), val, key, parent);
123118 return d;
124119 }
Test case

test/inputs/json/misc/7d397.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -171,15 +171,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
171171 if (val === null) {
172172 return null;
173173 }
174- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
175- return invalidValue(l("Date"), val, key, parent);
176174 const d = new Date(val);
177175 if (isNaN(d.valueOf())) {
178176 return invalidValue(l("Date"), val, key, parent);
179177 }
180- const date = typeof val === "string" ? val.slice(0, 10) : null;
181- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
182- return invalidValue(l("Date"), val, key, parent);
183178 return d;
184179 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -169,15 +169,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
169169 if (val === null) {
170170 return null;
171171 }
172- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
173- return invalidValue(l("Date"), val, key, parent);
174172 const d = new Date(val);
175173 if (isNaN(d.valueOf())) {
176174 return invalidValue(l("Date"), val, key, parent);
177175 }
178- const date = typeof val === "string" ? val.slice(0, 10) : null;
179- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
180- return invalidValue(l("Date"), val, key, parent);
181176 return d;
182177 }
Test case

test/inputs/json/misc/7d722.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/7df41.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Test case

test/inputs/json/misc/7dfa6.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/7eb30.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -140,15 +140,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
140140 if (val === null) {
141141 return null;
142142 }
143- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
144- return invalidValue(l("Date"), val, key, parent);
145143 const d = new Date(val);
146144 if (isNaN(d.valueOf())) {
147145 return invalidValue(l("Date"), val, key, parent);
148146 }
149- const date = typeof val === "string" ? val.slice(0, 10) : null;
150- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
151- return invalidValue(l("Date"), val, key, parent);
152147 return d;
153148 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -133,15 +133,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
133133 if (val === null) {
134134 return null;
135135 }
136- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
137- return invalidValue(l("Date"), val, key, parent);
138136 const d = new Date(val);
139137 if (isNaN(d.valueOf())) {
140138 return invalidValue(l("Date"), val, key, parent);
141139 }
142- const date = typeof val === "string" ? val.slice(0, 10) : null;
143- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
144- return invalidValue(l("Date"), val, key, parent);
145140 return d;
146141 }
Test case

test/inputs/json/misc/7f568.json

6 generated files · +5 −20
Mflowdefault / TopLevel.js+0 −5
@@ -127,15 +127,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
127127 if (val === null) {
128128 return null;
129129 }
130- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
131- return invalidValue(l("Date"), val, key, parent);
132130 const d = new Date(val);
133131 if (isNaN(d.valueOf())) {
134132 return invalidValue(l("Date"), val, key, parent);
135133 }
136- const date = typeof val === "string" ? val.slice(0, 10) : null;
137- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
138- return invalidValue(l("Date"), val, key, parent);
139134 return d;
140135 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -28,7 +28,7 @@ _TopLevel = PropTypes.shape({
2828 "comments": PropTypes.oneOfType([Integer]).isRequired,
2929 "comments_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
3030 "commits_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
31- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
31+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
3232 "description": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
3333 "files": PropTypes.oneOfType([PropTypes.objectOf(_File)]).isRequired,
3434 "forks_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
@@ -38,7 +38,7 @@ _TopLevel = PropTypes.shape({
3838 "id": PropTypes.oneOfType([PropTypes.string]).isRequired,
3939 "public": PropTypes.oneOfType([PropTypes.bool]).isRequired,
4040 "truncated": PropTypes.oneOfType([PropTypes.bool]).isRequired,
41- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
41+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
4242 "url": PropTypes.oneOfType([PropTypes.string]).isRequired,
4343 "user": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
4444 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -39,7 +39,7 @@ def to_enum(c: Type[EnumT], x: Any) -> EnumT:
3939
4040
4141 def from_datetime(x: Any) -> datetime.datetime:
42- return dateutil.parser.parse(x)
42+ return dateutil.parser.isoparse(x)
4343
4444
4545 def from_dict(f: Callable[[Any], T], x: Any) -> dict[str, T]:
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -24,7 +24,7 @@ export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")
2424 "comments": S.Int,
2525 "comments_url": S.String,
2626 "commits_url": S.String,
27- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
27+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
2828 "description": S.NullOr(S.String),
2929 "files": S.Record({ key: S.String, value: File}),
3030 "forks_url": S.String,
@@ -34,7 +34,7 @@ export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")
3434 "id": S.String,
3535 "public": S.Boolean,
3636 "truncated": S.Boolean,
37- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
37+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
3838 "url": S.String,
3939 "user": S.Null,
4040 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -125,15 +125,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
125125 if (val === null) {
126126 return null;
127127 }
128- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
129- return invalidValue(l("Date"), val, key, parent);
130128 const d = new Date(val);
131129 if (isNaN(d.valueOf())) {
132130 return invalidValue(l("Date"), val, key, parent);
133131 }
134- const date = typeof val === "string" ? val.slice(0, 10) : null;
135- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
136- return invalidValue(l("Date"), val, key, parent);
137132 return d;
138133 }
Test case

test/inputs/json/misc/7fbfb.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -124,15 +124,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
124124 if (val === null) {
125125 return null;
126126 }
127- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
128- return invalidValue(l("Date"), val, key, parent);
129127 const d = new Date(val);
130128 if (isNaN(d.valueOf())) {
131129 return invalidValue(l("Date"), val, key, parent);
132130 }
133- const date = typeof val === "string" ? val.slice(0, 10) : null;
134- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
135- return invalidValue(l("Date"), val, key, parent);
136131 return d;
137132 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -120,15 +120,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
120120 if (val === null) {
121121 return null;
122122 }
123- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
124- return invalidValue(l("Date"), val, key, parent);
125123 const d = new Date(val);
126124 if (isNaN(d.valueOf())) {
127125 return invalidValue(l("Date"), val, key, parent);
128126 }
129- const date = typeof val === "string" ? val.slice(0, 10) : null;
130- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
131- return invalidValue(l("Date"), val, key, parent);
132127 return d;
133128 }
Test case

test/inputs/json/misc/80aff.json

6 generated files · +5 −20
Mflowdefault / TopLevel.js+0 −5
@@ -115,15 +115,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
115115 if (val === null) {
116116 return null;
117117 }
118- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
119- return invalidValue(l("Date"), val, key, parent);
120118 const d = new Date(val);
121119 if (isNaN(d.valueOf())) {
122120 return invalidValue(l("Date"), val, key, parent);
123121 }
124- const date = typeof val === "string" ? val.slice(0, 10) : null;
125- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
126- return invalidValue(l("Date"), val, key, parent);
127122 return d;
128123 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -19,12 +19,12 @@ let _Result;
1919 _Facets = PropTypes.shape({
2020 });
2121 _Result = PropTypes.shape({
22- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
22+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2323 "id": PropTypes.oneOfType([Integer]).isRequired,
2424 "items": PropTypes.oneOfType([Integer]).isRequired,
2525 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
2626 "parent": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
27- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
27+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2828 "uri": PropTypes.oneOfType([PropTypes.string]).isRequired,
2929 });
3030 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -8,7 +8,7 @@ T = TypeVar("T")
88
99
1010 def from_datetime(x: Any) -> datetime.datetime:
11- return dateutil.parser.parse(x)
11+ return dateutil.parser.isoparse(x)
1212
1313
1414 def from_int(x: Any) -> int:
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -2,12 +2,12 @@ import * as S from "effect/Schema";
22
33
44 export class Result extends S.Class<Result>("Result")({
5- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
5+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
66 "id": S.Int,
77 "items": S.Int,
88 "name": S.String,
99 "parent": S.NullOr(S.Int),
10- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
10+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
1111 "uri": S.String,
1212 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -112,15 +112,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
112112 if (val === null) {
113113 return null;
114114 }
115- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
116- return invalidValue(l("Date"), val, key, parent);
117115 const d = new Date(val);
118116 if (isNaN(d.valueOf())) {
119117 return invalidValue(l("Date"), val, key, parent);
120118 }
121- const date = typeof val === "string" ? val.slice(0, 10) : null;
122- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
123- return invalidValue(l("Date"), val, key, parent);
124119 return d;
125120 }
Test case

test/inputs/json/misc/82509.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Test case

test/inputs/json/misc/8592b.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -219,15 +219,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
219219 if (val === null) {
220220 return null;
221221 }
222- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
223- return invalidValue(l("Date"), val, key, parent);
224222 const d = new Date(val);
225223 if (isNaN(d.valueOf())) {
226224 return invalidValue(l("Date"), val, key, parent);
227225 }
228- const date = typeof val === "string" ? val.slice(0, 10) : null;
229- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
230- return invalidValue(l("Date"), val, key, parent);
231226 return d;
232227 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -208,15 +208,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
208208 if (val === null) {
209209 return null;
210210 }
211- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
212- return invalidValue(l("Date"), val, key, parent);
213211 const d = new Date(val);
214212 if (isNaN(d.valueOf())) {
215213 return invalidValue(l("Date"), val, key, parent);
216214 }
217- const date = typeof val === "string" ? val.slice(0, 10) : null;
218- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
219- return invalidValue(l("Date"), val, key, parent);
220215 return d;
221216 }
Test case

test/inputs/json/misc/88130.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -108,7 +108,7 @@ _Results = PropTypes.shape({
108108 });
109109 _Query = PropTypes.shape({
110110 "count": PropTypes.oneOfType([Integer]).isRequired,
111- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
111+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
112112 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
113113 "results": _Results,
114114 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
3636
3737
3838 def from_datetime(x: Any) -> datetime.datetime:
39- return dateutil.parser.parse(x)
39+ return dateutil.parser.isoparse(x)
4040
4141
4242 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
9494
9595 export class Query extends S.Class<Query>("Query")({
9696 "count": S.Int,
97- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
97+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
9898 "lang": S.String,
9999 "results": Results,
100100 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Test case

test/inputs/json/misc/8a62c.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/908db.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/json/misc/9617f.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/96f7c.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/9847b.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/json/misc/9929c.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -108,7 +108,7 @@ _Results = PropTypes.shape({
108108 });
109109 _Query = PropTypes.shape({
110110 "count": PropTypes.oneOfType([Integer]).isRequired,
111- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
111+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
112112 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
113113 "results": _Results,
114114 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
3636
3737
3838 def from_datetime(x: Any) -> datetime.datetime:
39- return dateutil.parser.parse(x)
39+ return dateutil.parser.isoparse(x)
4040
4141
4242 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
9494
9595 export class Query extends S.Class<Query>("Query")({
9696 "count": S.Int,
97- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
97+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
9898 "lang": S.String,
9999 "results": Results,
100100 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Test case

test/inputs/json/misc/996bd.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -140,15 +140,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
140140 if (val === null) {
141141 return null;
142142 }
143- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
144- return invalidValue(l("Date"), val, key, parent);
145143 const d = new Date(val);
146144 if (isNaN(d.valueOf())) {
147145 return invalidValue(l("Date"), val, key, parent);
148146 }
149- const date = typeof val === "string" ? val.slice(0, 10) : null;
150- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
151- return invalidValue(l("Date"), val, key, parent);
152147 return d;
153148 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/9a503.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -126,15 +126,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
126126 if (val === null) {
127127 return null;
128128 }
129- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
130- return invalidValue(l("Date"), val, key, parent);
131129 const d = new Date(val);
132130 if (isNaN(d.valueOf())) {
133131 return invalidValue(l("Date"), val, key, parent);
134132 }
135- const date = typeof val === "string" ? val.slice(0, 10) : null;
136- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
137- return invalidValue(l("Date"), val, key, parent);
138133 return d;
139134 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -123,15 +123,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
123123 if (val === null) {
124124 return null;
125125 }
126- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
127- return invalidValue(l("Date"), val, key, parent);
128126 const d = new Date(val);
129127 if (isNaN(d.valueOf())) {
130128 return invalidValue(l("Date"), val, key, parent);
131129 }
132- const date = typeof val === "string" ? val.slice(0, 10) : null;
133- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
134- return invalidValue(l("Date"), val, key, parent);
135130 return d;
136131 }
Test case

test/inputs/json/misc/9ac3b.json

6 generated files · +5 −20
Mflowdefault / TopLevel.js+0 −5
@@ -127,15 +127,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
127127 if (val === null) {
128128 return null;
129129 }
130- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
131- return invalidValue(l("Date"), val, key, parent);
132130 const d = new Date(val);
133131 if (isNaN(d.valueOf())) {
134132 return invalidValue(l("Date"), val, key, parent);
135133 }
136- const date = typeof val === "string" ? val.slice(0, 10) : null;
137- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
138- return invalidValue(l("Date"), val, key, parent);
139134 return d;
140135 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -21,7 +21,7 @@ const _Title = PropTypes.oneOf(['Mr', 'Ms']);
2121 _Facets = PropTypes.shape({
2222 });
2323 _Result = PropTypes.shape({
24- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
24+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2525 "entity": PropTypes.oneOfType([PropTypes.string]).isRequired,
2626 "first_name": PropTypes.oneOfType([PropTypes.string]).isRequired,
2727 "id": PropTypes.oneOfType([PropTypes.string]).isRequired,
@@ -30,7 +30,7 @@ _Result = PropTypes.shape({
3030 "position": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
3131 "status": _Status,
3232 "title": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([_Title, PropTypes.oneOf([null])])])(props, name, ...args),
33- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
33+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
3434 "uri": PropTypes.oneOfType([PropTypes.string]).isRequired,
3535 });
3636 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -10,7 +10,7 @@ EnumT = TypeVar("EnumT", bound=Enum)
1010
1111
1212 def from_datetime(x: Any) -> datetime.datetime:
13- return dateutil.parser.parse(x)
13+ return dateutil.parser.isoparse(x)
1414
1515
1616 def from_str(x: Any) -> str:
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -15,7 +15,7 @@ export const Title = S.Literal(
1515 export type Title = S.Schema.Type<typeof Title>;
1616
1717 export class Result extends S.Class<Result>("Result")({
18- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
18+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
1919 "entity": S.String,
2020 "first_name": S.String,
2121 "id": S.String,
@@ -24,7 +24,7 @@ export class Result extends S.Class<Result>("Result")({
2424 "position": S.NullOr(S.String),
2525 "status": Status,
2626 "title": S.NullOr(Title),
27- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
27+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
2828 "uri": S.String,
2929 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -120,15 +120,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
120120 if (val === null) {
121121 return null;
122122 }
123- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
124- return invalidValue(l("Date"), val, key, parent);
125123 const d = new Date(val);
126124 if (isNaN(d.valueOf())) {
127125 return invalidValue(l("Date"), val, key, parent);
128126 }
129- const date = typeof val === "string" ? val.slice(0, 10) : null;
130- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
131- return invalidValue(l("Date"), val, key, parent);
132127 return d;
133128 }
Test case

test/inputs/json/misc/9eed5.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -125,15 +125,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
125125 if (val === null) {
126126 return null;
127127 }
128- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
129- return invalidValue(l("Date"), val, key, parent);
130128 const d = new Date(val);
131129 if (isNaN(d.valueOf())) {
132130 return invalidValue(l("Date"), val, key, parent);
133131 }
134- const date = typeof val === "string" ? val.slice(0, 10) : null;
135- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
136- return invalidValue(l("Date"), val, key, parent);
137132 return d;
138133 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -123,15 +123,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
123123 if (val === null) {
124124 return null;
125125 }
126- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
127- return invalidValue(l("Date"), val, key, parent);
128126 const d = new Date(val);
129127 if (isNaN(d.valueOf())) {
130128 return invalidValue(l("Date"), val, key, parent);
131129 }
132- const date = typeof val === "string" ? val.slice(0, 10) : null;
133- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
134- return invalidValue(l("Date"), val, key, parent);
135130 return d;
136131 }
Test case

test/inputs/json/misc/a0496.json

6 generated files · +9 −24
Mflowdefault / TopLevel.js+0 −5
@@ -117,15 +117,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
117117 if (val === null) {
118118 return null;
119119 }
120- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
121- return invalidValue(l("Date"), val, key, parent);
122120 const d = new Date(val);
123121 if (isNaN(d.valueOf())) {
124122 return invalidValue(l("Date"), val, key, parent);
125123 }
126- const date = typeof val === "string" ? val.slice(0, 10) : null;
127- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
128- return invalidValue(l("Date"), val, key, parent);
129124 return d;
130125 }
Mjavascript-prop-typesdefault / toplevel.js+4 −4
@@ -20,20 +20,20 @@ _Errors = PropTypes.shape({
2020 _TopLevel = PropTypes.shape({
2121 "code": PropTypes.oneOfType([PropTypes.string]).isRequired,
2222 "column_names": PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string)]).isRequired,
23- "data": PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.number, PropTypes.oneOf([null])])))]).isRequired,
23+ "data": PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.number, PropTypes.oneOf([null])])))]).isRequired,
2424 "description": PropTypes.oneOfType([PropTypes.string]).isRequired,
2525 "display_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
2626 "errors": _Errors,
2727 "frequency": PropTypes.oneOfType([PropTypes.string]).isRequired,
28- "from_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
28+ "from_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2929 "id": PropTypes.oneOfType([Integer]).isRequired,
3030 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
3131 "premium": PropTypes.oneOfType([PropTypes.bool]).isRequired,
3232 "source_code": PropTypes.oneOfType([PropTypes.string]).isRequired,
3333 "source_name": PropTypes.oneOfType([PropTypes.string]).isRequired,
34- "to_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
34+ "to_date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
3535 "type": PropTypes.oneOfType([PropTypes.string]).isRequired,
36- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
36+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
3737 "urlize_name": PropTypes.oneOfType([PropTypes.string]).isRequired,
3838 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -53,7 +53,7 @@ def from_bool(x: Any) -> bool:
5353
5454
5555 def from_datetime(x: Any) -> datetime.datetime:
56- return dateutil.parser.parse(x)
56+ return dateutil.parser.isoparse(x)
5757
5858
5959 def to_float(x: Any) -> float:
Mtypescript-effect-schemadefault / TopLevel.ts+4 −4
@@ -7,19 +7,19 @@ export class Errors extends S.Class<Errors>("Errors")(S.Struct({}).pipe(S.filter
77 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
88 "code": S.String,
99 "column_names": S.Array(S.String),
10- "data": S.Array(S.Array(S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), S.Number, S.Null))),
10+ "data": S.Array(S.Array(S.Union(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)), S.Number, S.Null))),
1111 "description": S.String,
1212 "display_url": S.String,
1313 "errors": Errors,
1414 "frequency": S.String,
15- "from_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
15+ "from_date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
1616 "id": S.Int,
1717 "name": S.String,
1818 "premium": S.Boolean,
1919 "source_code": S.String,
2020 "source_name": S.String,
21- "to_date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
21+ "to_date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
2222 "type": S.String,
23- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
23+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
2424 "urlize_name": S.String,
2525 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -114,15 +114,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
114114 if (val === null) {
115115 return null;
116116 }
117- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
118- return invalidValue(l("Date"), val, key, parent);
119117 const d = new Date(val);
120118 if (isNaN(d.valueOf())) {
121119 return invalidValue(l("Date"), val, key, parent);
122120 }
123- const date = typeof val === "string" ? val.slice(0, 10) : null;
124- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
125- return invalidValue(l("Date"), val, key, parent);
126121 return d;
127122 }
Test case

test/inputs/json/misc/a1eca.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -108,7 +108,7 @@ _Results = PropTypes.shape({
108108 });
109109 _Query = PropTypes.shape({
110110 "count": PropTypes.oneOfType([Integer]).isRequired,
111- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
111+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
112112 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
113113 "results": _Results,
114114 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
3636
3737
3838 def from_datetime(x: Any) -> datetime.datetime:
39- return dateutil.parser.parse(x)
39+ return dateutil.parser.isoparse(x)
4040
4141
4242 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
9494
9595 export class Query extends S.Class<Query>("Query")({
9696 "count": S.Int,
97- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
97+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
9898 "lang": S.String,
9999 "results": Results,
100100 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Test case

test/inputs/json/misc/a3d8c.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -212,15 +212,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
212212 if (val === null) {
213213 return null;
214214 }
215- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
216- return invalidValue(l("Date"), val, key, parent);
217215 const d = new Date(val);
218216 if (isNaN(d.valueOf())) {
219217 return invalidValue(l("Date"), val, key, parent);
220218 }
221- const date = typeof val === "string" ? val.slice(0, 10) : null;
222- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
223- return invalidValue(l("Date"), val, key, parent);
224219 return d;
225220 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -206,15 +206,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
206206 if (val === null) {
207207 return null;
208208 }
209- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
210- return invalidValue(l("Date"), val, key, parent);
211209 const d = new Date(val);
212210 if (isNaN(d.valueOf())) {
213211 return invalidValue(l("Date"), val, key, parent);
214212 }
215- const date = typeof val === "string" ? val.slice(0, 10) : null;
216- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
217- return invalidValue(l("Date"), val, key, parent);
218213 return d;
219214 }
Test case

test/inputs/json/misc/a45b0.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/json/misc/a71df.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/a9691.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/ab0d1.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/json/misc/abb4b.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/ac944.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/ad8be.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -163,15 +163,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
163163 if (val === null) {
164164 return null;
165165 }
166- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
167- return invalidValue(l("Date"), val, key, parent);
168166 const d = new Date(val);
169167 if (isNaN(d.valueOf())) {
170168 return invalidValue(l("Date"), val, key, parent);
171169 }
172- const date = typeof val === "string" ? val.slice(0, 10) : null;
173- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
174- return invalidValue(l("Date"), val, key, parent);
175170 return d;
176171 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -136,15 +136,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
136136 if (val === null) {
137137 return null;
138138 }
139- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
140- return invalidValue(l("Date"), val, key, parent);
141139 const d = new Date(val);
142140 if (isNaN(d.valueOf())) {
143141 return invalidValue(l("Date"), val, key, parent);
144142 }
145- const date = typeof val === "string" ? val.slice(0, 10) : null;
146- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
147- return invalidValue(l("Date"), val, key, parent);
148143 return d;
149144 }
Test case

test/inputs/json/misc/ae7f0.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -193,15 +193,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
193193 if (val === null) {
194194 return null;
195195 }
196- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
197- return invalidValue(l("Date"), val, key, parent);
198196 const d = new Date(val);
199197 if (isNaN(d.valueOf())) {
200198 return invalidValue(l("Date"), val, key, parent);
201199 }
202- const date = typeof val === "string" ? val.slice(0, 10) : null;
203- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
204- return invalidValue(l("Date"), val, key, parent);
205200 return d;
206201 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -184,15 +184,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
184184 if (val === null) {
185185 return null;
186186 }
187- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
188- return invalidValue(l("Date"), val, key, parent);
189187 const d = new Date(val);
190188 if (isNaN(d.valueOf())) {
191189 return invalidValue(l("Date"), val, key, parent);
192190 }
193- const date = typeof val === "string" ? val.slice(0, 10) : null;
194- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
195- return invalidValue(l("Date"), val, key, parent);
196191 return d;
197192 }
Test case

test/inputs/json/misc/ae9ca.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -142,15 +142,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
142142 if (val === null) {
143143 return null;
144144 }
145- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
146- return invalidValue(l("Date"), val, key, parent);
147145 const d = new Date(val);
148146 if (isNaN(d.valueOf())) {
149147 return invalidValue(l("Date"), val, key, parent);
150148 }
151- const date = typeof val === "string" ? val.slice(0, 10) : null;
152- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
153- return invalidValue(l("Date"), val, key, parent);
154149 return d;
155150 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -132,15 +132,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
132132 if (val === null) {
133133 return null;
134134 }
135- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
136- return invalidValue(l("Date"), val, key, parent);
137135 const d = new Date(val);
138136 if (isNaN(d.valueOf())) {
139137 return invalidValue(l("Date"), val, key, parent);
140138 }
141- const date = typeof val === "string" ? val.slice(0, 10) : null;
142- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
143- return invalidValue(l("Date"), val, key, parent);
144139 return d;
145140 }
Test case

test/inputs/json/misc/af2d1.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -204,15 +204,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
204204 if (val === null) {
205205 return null;
206206 }
207- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
208- return invalidValue(l("Date"), val, key, parent);
209207 const d = new Date(val);
210208 if (isNaN(d.valueOf())) {
211209 return invalidValue(l("Date"), val, key, parent);
212210 }
213- const date = typeof val === "string" ? val.slice(0, 10) : null;
214- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
215- return invalidValue(l("Date"), val, key, parent);
216211 return d;
217212 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -182,15 +182,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
182182 if (val === null) {
183183 return null;
184184 }
185- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
186- return invalidValue(l("Date"), val, key, parent);
187185 const d = new Date(val);
188186 if (isNaN(d.valueOf())) {
189187 return invalidValue(l("Date"), val, key, parent);
190188 }
191- const date = typeof val === "string" ? val.slice(0, 10) : null;
192- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
193- return invalidValue(l("Date"), val, key, parent);
194189 return d;
195190 }
Test case

test/inputs/json/misc/b4865.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -124,15 +124,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
124124 if (val === null) {
125125 return null;
126126 }
127- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
128- return invalidValue(l("Date"), val, key, parent);
129127 const d = new Date(val);
130128 if (isNaN(d.valueOf())) {
131129 return invalidValue(l("Date"), val, key, parent);
132130 }
133- const date = typeof val === "string" ? val.slice(0, 10) : null;
134- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
135- return invalidValue(l("Date"), val, key, parent);
136131 return d;
137132 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -33,7 +33,7 @@ _TopLevel = PropTypes.shape({
3333 "recclass": PropTypes.oneOfType([PropTypes.string]).isRequired,
3434 "reclat": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
3535 "reclong": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
36- "year": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])]),
36+ "year": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])]),
3737 });
3838
3939 export const TopLevel = PropTypes.arrayOf(_TopLevel);
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -49,7 +49,7 @@ def from_union(fs, x):
4949
5050
5151 def from_datetime(x: Any) -> datetime.datetime:
52- return dateutil.parser.parse(x)
52+ return dateutil.parser.isoparse(x)
5353
5454
5555 def is_type(t: Type[T], x: Any) -> T:
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -36,7 +36,7 @@ export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")
3636 "recclass": S.String,
3737 "reclat": S.optional(S.String),
3838 "reclong": S.optional(S.String),
39- "year": S.optional(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
39+ "year": S.optional(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10)))),
4040 }) {}
4141
4242 export const TopLevel = S.Array(TopLevelElement);
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -120,15 +120,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
120120 if (val === null) {
121121 return null;
122122 }
123- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
124- return invalidValue(l("Date"), val, key, parent);
125123 const d = new Date(val);
126124 if (isNaN(d.valueOf())) {
127125 return invalidValue(l("Date"), val, key, parent);
128126 }
129- const date = typeof val === "string" ? val.slice(0, 10) : null;
130- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
131- return invalidValue(l("Date"), val, key, parent);
132127 return d;
133128 }
Test case

test/inputs/json/misc/b6f2c.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/b6fe5.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/json/misc/b9f64.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Test case

test/inputs/json/misc/bb1ec.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/be234.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -258,15 +258,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
258258 if (val === null) {
259259 return null;
260260 }
261- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
262- return invalidValue(l("Date"), val, key, parent);
263261 const d = new Date(val);
264262 if (isNaN(d.valueOf())) {
265263 return invalidValue(l("Date"), val, key, parent);
266264 }
267- const date = typeof val === "string" ? val.slice(0, 10) : null;
268- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
269- return invalidValue(l("Date"), val, key, parent);
270265 return d;
271266 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -245,15 +245,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
245245 if (val === null) {
246246 return null;
247247 }
248- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
249- return invalidValue(l("Date"), val, key, parent);
250248 const d = new Date(val);
251249 if (isNaN(d.valueOf())) {
252250 return invalidValue(l("Date"), val, key, parent);
253251 }
254- const date = typeof val === "string" ? val.slice(0, 10) : null;
255- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
256- return invalidValue(l("Date"), val, key, parent);
257252 return d;
258253 }
Test case

test/inputs/json/misc/c0356.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -108,15 +108,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
108108 if (val === null) {
109109 return null;
110110 }
111- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
112- return invalidValue(l("Date"), val, key, parent);
113111 const d = new Date(val);
114112 if (isNaN(d.valueOf())) {
115113 return invalidValue(l("Date"), val, key, parent);
116114 }
117- const date = typeof val === "string" ? val.slice(0, 10) : null;
118- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
119- return invalidValue(l("Date"), val, key, parent);
120115 return d;
121116 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -108,15 +108,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
108108 if (val === null) {
109109 return null;
110110 }
111- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
112- return invalidValue(l("Date"), val, key, parent);
113111 const d = new Date(val);
114112 if (isNaN(d.valueOf())) {
115113 return invalidValue(l("Date"), val, key, parent);
116114 }
117- const date = typeof val === "string" ? val.slice(0, 10) : null;
118- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
119- return invalidValue(l("Date"), val, key, parent);
120115 return d;
121116 }
Test case

test/inputs/json/misc/c0a3a.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/c3303.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -209,15 +209,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
209209 if (val === null) {
210210 return null;
211211 }
212- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
213- return invalidValue(l("Date"), val, key, parent);
214212 const d = new Date(val);
215213 if (isNaN(d.valueOf())) {
216214 return invalidValue(l("Date"), val, key, parent);
217215 }
218- const date = typeof val === "string" ? val.slice(0, 10) : null;
219- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
220- return invalidValue(l("Date"), val, key, parent);
221216 return d;
222217 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -203,15 +203,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
203203 if (val === null) {
204204 return null;
205205 }
206- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
207- return invalidValue(l("Date"), val, key, parent);
208206 const d = new Date(val);
209207 if (isNaN(d.valueOf())) {
210208 return invalidValue(l("Date"), val, key, parent);
211209 }
212- const date = typeof val === "string" ? val.slice(0, 10) : null;
213- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
214- return invalidValue(l("Date"), val, key, parent);
215210 return d;
216211 }
Test case

test/inputs/json/misc/c6cfd.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/c8c7e.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -124,15 +124,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
124124 if (val === null) {
125125 return null;
126126 }
127- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
128- return invalidValue(l("Date"), val, key, parent);
129127 const d = new Date(val);
130128 if (isNaN(d.valueOf())) {
131129 return invalidValue(l("Date"), val, key, parent);
132130 }
133- const date = typeof val === "string" ? val.slice(0, 10) : null;
134- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
135- return invalidValue(l("Date"), val, key, parent);
136131 return d;
137132 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -120,15 +120,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
120120 if (val === null) {
121121 return null;
122122 }
123- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
124- return invalidValue(l("Date"), val, key, parent);
125123 const d = new Date(val);
126124 if (isNaN(d.valueOf())) {
127125 return invalidValue(l("Date"), val, key, parent);
128126 }
129- const date = typeof val === "string" ? val.slice(0, 10) : null;
130- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
131- return invalidValue(l("Date"), val, key, parent);
132127 return d;
133128 }
Test case

test/inputs/json/misc/cb0cc.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -119,15 +119,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
119119 if (val === null) {
120120 return null;
121121 }
122- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
123- return invalidValue(l("Date"), val, key, parent);
124122 const d = new Date(val);
125123 if (isNaN(d.valueOf())) {
126124 return invalidValue(l("Date"), val, key, parent);
127125 }
128- const date = typeof val === "string" ? val.slice(0, 10) : null;
129- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
130- return invalidValue(l("Date"), val, key, parent);
131126 return d;
132127 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -113,15 +113,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
113113 if (val === null) {
114114 return null;
115115 }
116- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
117- return invalidValue(l("Date"), val, key, parent);
118116 const d = new Date(val);
119117 if (isNaN(d.valueOf())) {
120118 return invalidValue(l("Date"), val, key, parent);
121119 }
122- const date = typeof val === "string" ? val.slice(0, 10) : null;
123- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
124- return invalidValue(l("Date"), val, key, parent);
125120 return d;
126121 }
Test case

test/inputs/json/misc/cb81e.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/json/misc/ccd18.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/cd238.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -129,15 +129,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
129129 if (val === null) {
130130 return null;
131131 }
132- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
133- return invalidValue(l("Date"), val, key, parent);
134132 const d = new Date(val);
135133 if (isNaN(d.valueOf())) {
136134 return invalidValue(l("Date"), val, key, parent);
137135 }
138- const date = typeof val === "string" ? val.slice(0, 10) : null;
139- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
140- return invalidValue(l("Date"), val, key, parent);
141136 return d;
142137 }
Test case

test/inputs/json/misc/cd463.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/cda6c.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -124,15 +124,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
124124 if (val === null) {
125125 return null;
126126 }
127- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
128- return invalidValue(l("Date"), val, key, parent);
129127 const d = new Date(val);
130128 if (isNaN(d.valueOf())) {
131129 return invalidValue(l("Date"), val, key, parent);
132130 }
133- const date = typeof val === "string" ? val.slice(0, 10) : null;
134- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
135- return invalidValue(l("Date"), val, key, parent);
136131 return d;
137132 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -120,15 +120,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
120120 if (val === null) {
121121 return null;
122122 }
123- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
124- return invalidValue(l("Date"), val, key, parent);
125123 const d = new Date(val);
126124 if (isNaN(d.valueOf())) {
127125 return invalidValue(l("Date"), val, key, parent);
128126 }
129- const date = typeof val === "string" ? val.slice(0, 10) : null;
130- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
131- return invalidValue(l("Date"), val, key, parent);
132127 return d;
133128 }
Test case

test/inputs/json/misc/cf0d8.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -108,7 +108,7 @@ _Results = PropTypes.shape({
108108 });
109109 _Query = PropTypes.shape({
110110 "count": PropTypes.oneOfType([Integer]).isRequired,
111- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
111+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
112112 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
113113 "results": _Results,
114114 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
3636
3737
3838 def from_datetime(x: Any) -> datetime.datetime:
39- return dateutil.parser.parse(x)
39+ return dateutil.parser.isoparse(x)
4040
4141
4242 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
9494
9595 export class Query extends S.Class<Query>("Query")({
9696 "count": S.Int,
97- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
97+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
9898 "lang": S.String,
9999 "results": Results,
100100 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Test case

test/inputs/json/misc/cfbce.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
1717 "base": PropTypes.oneOfType([PropTypes.string]).isRequired,
18- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "rates": PropTypes.oneOfType([PropTypes.objectOf(PropTypes.number)]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -3,6 +3,6 @@ import * as S from "effect/Schema";
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
55 "base": S.String,
6- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
77 "rates": S.Record({ key: S.String, value: S.Number}),
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/misc/d0908.json

5 generated files · +2 −17
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -16,7 +16,7 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 let _TotalPopulation;
1818 _TotalPopulation = PropTypes.shape({
19- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2020 "population": PropTypes.oneOfType([Integer]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TotalPopulation extends S.Class<TotalPopulation>("TotalPopulation")({
5- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
5+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
66 "population": S.Int,
77 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/d23d5.json

6 generated files · +5 −20
Mflowdefault / TopLevel.js+0 −5
@@ -114,15 +114,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
114114 if (val === null) {
115115 return null;
116116 }
117- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
118- return invalidValue(l("Date"), val, key, parent);
119117 const d = new Date(val);
120118 if (isNaN(d.valueOf())) {
121119 return invalidValue(l("Date"), val, key, parent);
122120 }
123- const date = typeof val === "string" ? val.slice(0, 10) : null;
124- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
125- return invalidValue(l("Date"), val, key, parent);
126121 return d;
127122 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -20,10 +20,10 @@ _Facets = PropTypes.shape({
2020 });
2121 _Result = PropTypes.shape({
2222 "acronym": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
23- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
23+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2424 "id": PropTypes.oneOfType([PropTypes.string]).isRequired,
2525 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
26- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
26+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2727 "uri": PropTypes.oneOfType([PropTypes.string]).isRequired,
2828 });
2929 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -8,7 +8,7 @@ T = TypeVar("T")
88
99
1010 def from_datetime(x: Any) -> datetime.datetime:
11- return dateutil.parser.parse(x)
11+ return dateutil.parser.isoparse(x)
1212
1313
1414 def from_str(x: Any) -> str:
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -3,10 +3,10 @@ import * as S from "effect/Schema";
33
44 export class Result extends S.Class<Result>("Result")({
55 "acronym": S.NullOr(S.String),
6- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
6+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
77 "id": S.String,
88 "name": S.String,
9- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
9+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
1010 "uri": S.String,
1111 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -111,15 +111,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
111111 if (val === null) {
112112 return null;
113113 }
114- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
115- return invalidValue(l("Date"), val, key, parent);
116114 const d = new Date(val);
117115 if (isNaN(d.valueOf())) {
118116 return invalidValue(l("Date"), val, key, parent);
119117 }
120- const date = typeof val === "string" ? val.slice(0, 10) : null;
121- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
122- return invalidValue(l("Date"), val, key, parent);
123118 return d;
124119 }
Test case

test/inputs/json/misc/dbfb3.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -198,15 +198,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
198198 if (val === null) {
199199 return null;
200200 }
201- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
202- return invalidValue(l("Date"), val, key, parent);
203201 const d = new Date(val);
204202 if (isNaN(d.valueOf())) {
205203 return invalidValue(l("Date"), val, key, parent);
206204 }
207- const date = typeof val === "string" ? val.slice(0, 10) : null;
208- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
209- return invalidValue(l("Date"), val, key, parent);
210205 return d;
211206 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -109,7 +109,7 @@ _Results = PropTypes.shape({
109109 });
110110 _Query = PropTypes.shape({
111111 "count": PropTypes.oneOfType([Integer]).isRequired,
112- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
112+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
113113 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
114114 "results": _Results,
115115 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
4343
4444
4545 def from_datetime(x: Any) -> datetime.datetime:
46- return dateutil.parser.parse(x)
46+ return dateutil.parser.isoparse(x)
4747
4848
4949 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -100,7 +100,7 @@ export class Results extends S.Class<Results>("Results")({
100100
101101 export class Query extends S.Class<Query>("Query")({
102102 "count": S.Int,
103- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
103+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
104104 "lang": S.String,
105105 "results": Results,
106106 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -196,15 +196,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
196196 if (val === null) {
197197 return null;
198198 }
199- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
200- return invalidValue(l("Date"), val, key, parent);
201199 const d = new Date(val);
202200 if (isNaN(d.valueOf())) {
203201 return invalidValue(l("Date"), val, key, parent);
204202 }
205- const date = typeof val === "string" ? val.slice(0, 10) : null;
206- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
207- return invalidValue(l("Date"), val, key, parent);
208203 return d;
209204 }
Test case

test/inputs/json/misc/dc44f.json

5 generated files · +4 −19
Mflowdefault / TopLevel.js+0 −5
@@ -222,15 +222,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
222222 if (val === null) {
223223 return null;
224224 }
225- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
226- return invalidValue(l("Date"), val, key, parent);
227225 const d = new Date(val);
228226 if (isNaN(d.valueOf())) {
229227 return invalidValue(l("Date"), val, key, parent);
230228 }
231- const date = typeof val === "string" ? val.slice(0, 10) : null;
232- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
233- return invalidValue(l("Date"), val, key, parent);
234229 return d;
235230 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -31,7 +31,7 @@ _LegalityElement = PropTypes.shape({
3131 "legality": _LegalityEnum,
3232 });
3333 _Ruling = PropTypes.shape({
34- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
34+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
3535 "text": PropTypes.oneOfType([PropTypes.string]).isRequired,
3636 });
3737 _Card = PropTypes.shape({
@@ -73,7 +73,7 @@ _TopLevel = PropTypes.shape({
7373 "mkm_id": PropTypes.oneOfType([Integer]).isRequired,
7474 "mkm_name": PropTypes.oneOfType([PropTypes.string]).isRequired,
7575 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
76- "releaseDate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
76+ "releaseDate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
7777 "type": PropTypes.oneOfType([PropTypes.string]).isRequired,
7878 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -104,7 +104,7 @@ export const Type = S.Literal(
104104 export type Type = S.Schema.Type<typeof Type>;
105105
106106 export class Ruling extends S.Class<Ruling>("Ruling")({
107- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
107+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
108108 "text": S.String,
109109 }) {}
110110
@@ -153,6 +153,6 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
153153 "mkm_id": S.Int,
154154 "mkm_name": S.String,
155155 "name": S.String,
156- "releaseDate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
156+ "releaseDate": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
157157 "type": S.String,
158158 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -164,15 +164,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
164164 if (val === null) {
165165 return null;
166166 }
167- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
168- return invalidValue(l("Date"), val, key, parent);
169167 const d = new Date(val);
170168 if (isNaN(d.valueOf())) {
171169 return invalidValue(l("Date"), val, key, parent);
172170 }
173- const date = typeof val === "string" ? val.slice(0, 10) : null;
174- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
175- return invalidValue(l("Date"), val, key, parent);
176171 return d;
177172 }
Test case

test/inputs/json/misc/dd1ce.json

5 generated files · +4 −19
Mflowdefault / TopLevel.js+0 −5
@@ -222,15 +222,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
222222 if (val === null) {
223223 return null;
224224 }
225- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
226- return invalidValue(l("Date"), val, key, parent);
227225 const d = new Date(val);
228226 if (isNaN(d.valueOf())) {
229227 return invalidValue(l("Date"), val, key, parent);
230228 }
231- const date = typeof val === "string" ? val.slice(0, 10) : null;
232- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
233- return invalidValue(l("Date"), val, key, parent);
234229 return d;
235230 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -31,7 +31,7 @@ _LegalityElement = PropTypes.shape({
3131 "legality": _LegalityEnum,
3232 });
3333 _Ruling = PropTypes.shape({
34- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
34+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
3535 "text": PropTypes.oneOfType([PropTypes.string]).isRequired,
3636 });
3737 _Card = PropTypes.shape({
@@ -73,7 +73,7 @@ _TopLevel = PropTypes.shape({
7373 "mkm_id": PropTypes.oneOfType([Integer]).isRequired,
7474 "mkm_name": PropTypes.oneOfType([PropTypes.string]).isRequired,
7575 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
76- "releaseDate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
76+ "releaseDate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
7777 "type": PropTypes.oneOfType([PropTypes.string]).isRequired,
7878 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -104,7 +104,7 @@ export const Type = S.Literal(
104104 export type Type = S.Schema.Type<typeof Type>;
105105
106106 export class Ruling extends S.Class<Ruling>("Ruling")({
107- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
107+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
108108 "text": S.String,
109109 }) {}
110110
@@ -153,6 +153,6 @@ export class TopLevel extends S.Class<TopLevel>("TopLevel")({
153153 "mkm_id": S.Int,
154154 "mkm_name": S.String,
155155 "name": S.String,
156- "releaseDate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
156+ "releaseDate": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
157157 "type": S.String,
158158 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -164,15 +164,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
164164 if (val === null) {
165165 return null;
166166 }
167- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
168- return invalidValue(l("Date"), val, key, parent);
169167 const d = new Date(val);
170168 if (isNaN(d.valueOf())) {
171169 return invalidValue(l("Date"), val, key, parent);
172170 }
173- const date = typeof val === "string" ? val.slice(0, 10) : null;
174- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
175- return invalidValue(l("Date"), val, key, parent);
176171 return d;
177172 }
Test case

test/inputs/json/misc/dec3a.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -157,15 +157,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
157157 if (val === null) {
158158 return null;
159159 }
160- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
161- return invalidValue(l("Date"), val, key, parent);
162160 const d = new Date(val);
163161 if (isNaN(d.valueOf())) {
164162 return invalidValue(l("Date"), val, key, parent);
165163 }
166- const date = typeof val === "string" ? val.slice(0, 10) : null;
167- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
168- return invalidValue(l("Date"), val, key, parent);
169164 return d;
170165 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -157,15 +157,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
157157 if (val === null) {
158158 return null;
159159 }
160- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
161- return invalidValue(l("Date"), val, key, parent);
162160 const d = new Date(val);
163161 if (isNaN(d.valueOf())) {
164162 return invalidValue(l("Date"), val, key, parent);
165163 }
166- const date = typeof val === "string" ? val.slice(0, 10) : null;
167- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
168- return invalidValue(l("Date"), val, key, parent);
169164 return d;
170165 }
Test case

test/inputs/json/misc/df957.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -108,7 +108,7 @@ _Results = PropTypes.shape({
108108 });
109109 _Query = PropTypes.shape({
110110 "count": PropTypes.oneOfType([Integer]).isRequired,
111- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
111+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
112112 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
113113 "results": _Results,
114114 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
3636
3737
3838 def from_datetime(x: Any) -> datetime.datetime:
39- return dateutil.parser.parse(x)
39+ return dateutil.parser.isoparse(x)
4040
4141
4242 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -94,7 +94,7 @@ export class Results extends S.Class<Results>("Results")({
9494
9595 export class Query extends S.Class<Query>("Query")({
9696 "count": S.Int,
97- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
97+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
9898 "lang": S.String,
9999 "results": Results,
100100 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -194,15 +194,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
194194 if (val === null) {
195195 return null;
196196 }
197- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
198- return invalidValue(l("Date"), val, key, parent);
199197 const d = new Date(val);
200198 if (isNaN(d.valueOf())) {
201199 return invalidValue(l("Date"), val, key, parent);
202200 }
203- const date = typeof val === "string" ? val.slice(0, 10) : null;
204- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
205- return invalidValue(l("Date"), val, key, parent);
206201 return d;
207202 }
Test case

test/inputs/json/misc/e0ac7.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -206,15 +206,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
206206 if (val === null) {
207207 return null;
208208 }
209- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
210- return invalidValue(l("Date"), val, key, parent);
211209 const d = new Date(val);
212210 if (isNaN(d.valueOf())) {
213211 return invalidValue(l("Date"), val, key, parent);
214212 }
215- const date = typeof val === "string" ? val.slice(0, 10) : null;
216- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
217- return invalidValue(l("Date"), val, key, parent);
218213 return d;
219214 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -202,15 +202,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
202202 if (val === null) {
203203 return null;
204204 }
205- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
206- return invalidValue(l("Date"), val, key, parent);
207205 const d = new Date(val);
208206 if (isNaN(d.valueOf())) {
209207 return invalidValue(l("Date"), val, key, parent);
210208 }
211- const date = typeof val === "string" ? val.slice(0, 10) : null;
212- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
213- return invalidValue(l("Date"), val, key, parent);
214209 return d;
215210 }
Test case

test/inputs/json/misc/e2915.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -197,15 +197,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
197197 if (val === null) {
198198 return null;
199199 }
200- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
201- return invalidValue(l("Date"), val, key, parent);
202200 const d = new Date(val);
203201 if (isNaN(d.valueOf())) {
204202 return invalidValue(l("Date"), val, key, parent);
205203 }
206- const date = typeof val === "string" ? val.slice(0, 10) : null;
207- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
208- return invalidValue(l("Date"), val, key, parent);
209204 return d;
210205 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -109,7 +109,7 @@ _Results = PropTypes.shape({
109109 });
110110 _Query = PropTypes.shape({
111111 "count": PropTypes.oneOfType([Integer]).isRequired,
112- "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
112+ "created": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
113113 "lang": PropTypes.oneOfType([PropTypes.string]).isRequired,
114114 "results": _Results,
115115 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
4343
4444
4545 def from_datetime(x: Any) -> datetime.datetime:
46- return dateutil.parser.parse(x)
46+ return dateutil.parser.isoparse(x)
4747
4848
4949 @dataclass
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -99,7 +99,7 @@ export class Results extends S.Class<Results>("Results")({
9999
100100 export class Query extends S.Class<Query>("Query")({
101101 "count": S.Int,
102- "created": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
102+ "created": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
103103 "lang": S.String,
104104 "results": Results,
105105 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -196,15 +196,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
196196 if (val === null) {
197197 return null;
198198 }
199- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
200- return invalidValue(l("Date"), val, key, parent);
201199 const d = new Date(val);
202200 if (isNaN(d.valueOf())) {
203201 return invalidValue(l("Date"), val, key, parent);
204202 }
205- const date = typeof val === "string" ? val.slice(0, 10) : null;
206- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
207- return invalidValue(l("Date"), val, key, parent);
208203 return d;
209204 }
Test case

test/inputs/json/misc/e2a58.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/json/misc/e324e.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -168,15 +168,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
168168 if (val === null) {
169169 return null;
170170 }
171- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
172- return invalidValue(l("Date"), val, key, parent);
173171 const d = new Date(val);
174172 if (isNaN(d.valueOf())) {
175173 return invalidValue(l("Date"), val, key, parent);
176174 }
177- const date = typeof val === "string" ? val.slice(0, 10) : null;
178- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
179- return invalidValue(l("Date"), val, key, parent);
180175 return d;
181176 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -167,15 +167,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
167167 if (val === null) {
168168 return null;
169169 }
170- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
171- return invalidValue(l("Date"), val, key, parent);
172170 const d = new Date(val);
173171 if (isNaN(d.valueOf())) {
174172 return invalidValue(l("Date"), val, key, parent);
175173 }
176- const date = typeof val === "string" ? val.slice(0, 10) : null;
177- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
178- return invalidValue(l("Date"), val, key, parent);
179174 return d;
180175 }
Test case

test/inputs/json/misc/e53b5.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -124,15 +124,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
124124 if (val === null) {
125125 return null;
126126 }
127- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
128- return invalidValue(l("Date"), val, key, parent);
129127 const d = new Date(val);
130128 if (isNaN(d.valueOf())) {
131129 return invalidValue(l("Date"), val, key, parent);
132130 }
133- const date = typeof val === "string" ? val.slice(0, 10) : null;
134- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
135- return invalidValue(l("Date"), val, key, parent);
136131 return d;
137132 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -120,15 +120,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
120120 if (val === null) {
121121 return null;
122122 }
123- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
124- return invalidValue(l("Date"), val, key, parent);
125123 const d = new Date(val);
126124 if (isNaN(d.valueOf())) {
127125 return invalidValue(l("Date"), val, key, parent);
128126 }
129- const date = typeof val === "string" ? val.slice(0, 10) : null;
130- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
131- return invalidValue(l("Date"), val, key, parent);
132127 return d;
133128 }
Test case

test/inputs/json/misc/e64a0.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Test case

test/inputs/json/misc/e8a0b.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/json/misc/e8b04.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -366,15 +366,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
366366 if (val === null) {
367367 return null;
368368 }
369- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
370- return invalidValue(l("Date"), val, key, parent);
371369 const d = new Date(val);
372370 if (isNaN(d.valueOf())) {
373371 return invalidValue(l("Date"), val, key, parent);
374372 }
375- const date = typeof val === "string" ? val.slice(0, 10) : null;
376- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
377- return invalidValue(l("Date"), val, key, parent);
378373 return d;
379374 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -327,15 +327,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
327327 if (val === null) {
328328 return null;
329329 }
330- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
331- return invalidValue(l("Date"), val, key, parent);
332330 const d = new Date(val);
333331 if (isNaN(d.valueOf())) {
334332 return invalidValue(l("Date"), val, key, parent);
335333 }
336- const date = typeof val === "string" ? val.slice(0, 10) : null;
337- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
338- return invalidValue(l("Date"), val, key, parent);
339334 return d;
340335 }
Test case

test/inputs/json/misc/ed095.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Test case

test/inputs/json/misc/f22f5.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -190,15 +190,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
190190 if (val === null) {
191191 return null;
192192 }
193- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
194- return invalidValue(l("Date"), val, key, parent);
195193 const d = new Date(val);
196194 if (isNaN(d.valueOf())) {
197195 return invalidValue(l("Date"), val, key, parent);
198196 }
199- const date = typeof val === "string" ? val.slice(0, 10) : null;
200- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
201- return invalidValue(l("Date"), val, key, parent);
202197 return d;
203198 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -182,15 +182,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
182182 if (val === null) {
183183 return null;
184184 }
185- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
186- return invalidValue(l("Date"), val, key, parent);
187185 const d = new Date(val);
188186 if (isNaN(d.valueOf())) {
189187 return invalidValue(l("Date"), val, key, parent);
190188 }
191- const date = typeof val === "string" ? val.slice(0, 10) : null;
192- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
193- return invalidValue(l("Date"), val, key, parent);
194189 return d;
195190 }
Test case

test/inputs/json/misc/f3139.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/json/misc/f3edf.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/json/misc/f466a.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/json/misc/f6a65.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -213,15 +213,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
213213 if (val === null) {
214214 return null;
215215 }
216- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
217- return invalidValue(l("Date"), val, key, parent);
218216 const d = new Date(val);
219217 if (isNaN(d.valueOf())) {
220218 return invalidValue(l("Date"), val, key, parent);
221219 }
222- const date = typeof val === "string" ? val.slice(0, 10) : null;
223- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
224- return invalidValue(l("Date"), val, key, parent);
225220 return d;
226221 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -204,15 +204,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
204204 if (val === null) {
205205 return null;
206206 }
207- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
208- return invalidValue(l("Date"), val, key, parent);
209207 const d = new Date(val);
210208 if (isNaN(d.valueOf())) {
211209 return invalidValue(l("Date"), val, key, parent);
212210 }
213- const date = typeof val === "string" ? val.slice(0, 10) : null;
214- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
215- return invalidValue(l("Date"), val, key, parent);
216211 return d;
217212 }
Test case

test/inputs/json/misc/f74d5.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -212,15 +212,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
212212 if (val === null) {
213213 return null;
214214 }
215- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
216- return invalidValue(l("Date"), val, key, parent);
217215 const d = new Date(val);
218216 if (isNaN(d.valueOf())) {
219217 return invalidValue(l("Date"), val, key, parent);
220218 }
221- const date = typeof val === "string" ? val.slice(0, 10) : null;
222- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
223- return invalidValue(l("Date"), val, key, parent);
224219 return d;
225220 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -206,15 +206,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
206206 if (val === null) {
207207 return null;
208208 }
209- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
210- return invalidValue(l("Date"), val, key, parent);
211209 const d = new Date(val);
212210 if (isNaN(d.valueOf())) {
213211 return invalidValue(l("Date"), val, key, parent);
214212 }
215- const date = typeof val === "string" ? val.slice(0, 10) : null;
216- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
217- return invalidValue(l("Date"), val, key, parent);
218213 return d;
219214 }
Test case

test/inputs/json/misc/f82d9.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -181,15 +181,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
181181 if (val === null) {
182182 return null;
183183 }
184- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
185- return invalidValue(l("Date"), val, key, parent);
186184 const d = new Date(val);
187185 if (isNaN(d.valueOf())) {
188186 return invalidValue(l("Date"), val, key, parent);
189187 }
190- const date = typeof val === "string" ? val.slice(0, 10) : null;
191- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
192- return invalidValue(l("Date"), val, key, parent);
193188 return d;
194189 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -180,15 +180,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
180180 if (val === null) {
181181 return null;
182182 }
183- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
184- return invalidValue(l("Date"), val, key, parent);
185183 const d = new Date(val);
186184 if (isNaN(d.valueOf())) {
187185 return invalidValue(l("Date"), val, key, parent);
188186 }
189- const date = typeof val === "string" ? val.slice(0, 10) : null;
190- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
191- return invalidValue(l("Date"), val, key, parent);
192187 return d;
193188 }
Test case

test/inputs/json/misc/f974d.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/misc/faff5.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/misc/fcca3.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -309,15 +309,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
309309 if (val === null) {
310310 return null;
311311 }
312- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
313- return invalidValue(l("Date"), val, key, parent);
314312 const d = new Date(val);
315313 if (isNaN(d.valueOf())) {
316314 return invalidValue(l("Date"), val, key, parent);
317315 }
318- const date = typeof val === "string" ? val.slice(0, 10) : null;
319- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
320- return invalidValue(l("Date"), val, key, parent);
321316 return d;
322317 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -306,15 +306,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
306306 if (val === null) {
307307 return null;
308308 }
309- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
310- return invalidValue(l("Date"), val, key, parent);
311309 const d = new Date(val);
312310 if (isNaN(d.valueOf())) {
313311 return invalidValue(l("Date"), val, key, parent);
314312 }
315- const date = typeof val === "string" ? val.slice(0, 10) : null;
316- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
317- return invalidValue(l("Date"), val, key, parent);
318313 return d;
319314 }
Test case

test/inputs/json/misc/fd329.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Test case

test/inputs/json/priority/blns-object.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -691,15 +691,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
691691 if (val === null) {
692692 return null;
693693 }
694- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
695- return invalidValue(l("Date"), val, key, parent);
696694 const d = new Date(val);
697695 if (isNaN(d.valueOf())) {
698696 return invalidValue(l("Date"), val, key, parent);
699697 }
700- const date = typeof val === "string" ? val.slice(0, 10) : null;
701- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
702- return invalidValue(l("Date"), val, key, parent);
703698 return d;
704699 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -691,15 +691,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
691691 if (val === null) {
692692 return null;
693693 }
694- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
695- return invalidValue(l("Date"), val, key, parent);
696694 const d = new Date(val);
697695 if (isNaN(d.valueOf())) {
698696 return invalidValue(l("Date"), val, key, parent);
699697 }
700- const date = typeof val === "string" ? val.slice(0, 10) : null;
701- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
702- return invalidValue(l("Date"), val, key, parent);
703698 return d;
704699 }
Test case

test/inputs/json/priority/bug2037.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -107,15 +107,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
107107 if (val === null) {
108108 return null;
109109 }
110- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
111- return invalidValue(l("Date"), val, key, parent);
112110 const d = new Date(val);
113111 if (isNaN(d.valueOf())) {
114112 return invalidValue(l("Date"), val, key, parent);
115113 }
116- const date = typeof val === "string" ? val.slice(0, 10) : null;
117- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
118- return invalidValue(l("Date"), val, key, parent);
119114 return d;
120115 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/json/priority/bug2521.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/priority/bug2590.json

6 generated files · +5 −20
Mflowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -15,8 +15,8 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 let _Invoice;
1717 _Invoice = PropTypes.shape({
18- "createdAt": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
19- "dueDate": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
18+ "createdAt": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
19+ "dueDate": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
2020 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
2121 });
2222 _TopLevel = PropTypes.shape({
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -14,7 +14,7 @@ def from_str(x: Any) -> str:
1414
1515
1616 def from_datetime(x: Any) -> datetime.datetime:
17- return dateutil.parser.parse(x)
17+ return dateutil.parser.isoparse(x)
1818
1919
2020 def from_none(x: Any) -> Any:
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -2,8 +2,8 @@ import * as S from "effect/Schema";
22
33
44 export class Invoice extends S.Class<Invoice>("Invoice")({
5- "createdAt": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
6- "dueDate": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/))),
5+ "createdAt": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10)))),
6+ "dueDate": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value))),
77 "name": S.String,
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Test case

test/inputs/json/priority/bug2663.json

6 generated files · +5 −20
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascript-prop-typesdefault / toplevel.js+2 −2
@@ -14,8 +14,8 @@ import PropTypes from "prop-types";
1414
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
17- "birthday": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
18- "lastSeen": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
17+ "birthday": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
18+ "lastSeen": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
1919 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
2020 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -14,7 +14,7 @@ def from_date(x: Any) -> datetime.date:
1414
1515
1616 def from_datetime(x: Any) -> datetime.datetime:
17- return dateutil.parser.parse(x)
17+ return dateutil.parser.isoparse(x)
1818
1919
2020 def from_str(x: Any) -> str:
Mtypescript-effect-schemadefault / TopLevel.ts+2 −2
@@ -2,7 +2,7 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "birthday": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
6- "lastSeen": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
5+ "birthday": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
6+ "lastSeen": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
77 "name": S.String,
88 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/priority/bug2793.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Test case

test/inputs/json/priority/bug427.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -707,15 +707,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
707707 if (val === null) {
708708 return null;
709709 }
710- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
711- return invalidValue(l("Date"), val, key, parent);
712710 const d = new Date(val);
713711 if (isNaN(d.valueOf())) {
714712 return invalidValue(l("Date"), val, key, parent);
715713 }
716- const date = typeof val === "string" ? val.slice(0, 10) : null;
717- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
718- return invalidValue(l("Date"), val, key, parent);
719714 return d;
720715 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -653,15 +653,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
653653 if (val === null) {
654654 return null;
655655 }
656- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
657- return invalidValue(l("Date"), val, key, parent);
658656 const d = new Date(val);
659657 if (isNaN(d.valueOf())) {
660658 return invalidValue(l("Date"), val, key, parent);
661659 }
662- const date = typeof val === "string" ? val.slice(0, 10) : null;
663- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
664- return invalidValue(l("Date"), val, key, parent);
665660 return d;
666661 }
Test case

test/inputs/json/priority/bug790.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/json/priority/bug855-short.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/priority/bug863.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -182,15 +182,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
182182 if (val === null) {
183183 return null;
184184 }
185- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
186- return invalidValue(l("Date"), val, key, parent);
187185 const d = new Date(val);
188186 if (isNaN(d.valueOf())) {
189187 return invalidValue(l("Date"), val, key, parent);
190188 }
191- const date = typeof val === "string" ? val.slice(0, 10) : null;
192- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
193- return invalidValue(l("Date"), val, key, parent);
194189 return d;
195190 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -166,15 +166,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
166166 if (val === null) {
167167 return null;
168168 }
169- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
170- return invalidValue(l("Date"), val, key, parent);
171169 const d = new Date(val);
172170 if (isNaN(d.valueOf())) {
173171 return invalidValue(l("Date"), val, key, parent);
174172 }
175- const date = typeof val === "string" ? val.slice(0, 10) : null;
176- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
177- return invalidValue(l("Date"), val, key, parent);
178173 return d;
179174 }
Test case

test/inputs/json/priority/coin-pairs.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -108,15 +108,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
108108 if (val === null) {
109109 return null;
110110 }
111- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
112- return invalidValue(l("Date"), val, key, parent);
113111 const d = new Date(val);
114112 if (isNaN(d.valueOf())) {
115113 return invalidValue(l("Date"), val, key, parent);
116114 }
117- const date = typeof val === "string" ? val.slice(0, 10) : null;
118- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
119- return invalidValue(l("Date"), val, key, parent);
120115 return d;
121116 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -108,15 +108,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
108108 if (val === null) {
109109 return null;
110110 }
111- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
112- return invalidValue(l("Date"), val, key, parent);
113111 const d = new Date(val);
114112 if (isNaN(d.valueOf())) {
115113 return invalidValue(l("Date"), val, key, parent);
116114 }
117- const date = typeof val === "string" ? val.slice(0, 10) : null;
118- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
119- return invalidValue(l("Date"), val, key, parent);
120115 return d;
121116 }
Test case

test/inputs/json/priority/combinations1.json

20 generated files · +0 −100
Mflowdefault / TopLevel.js+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mflownice-property-names-true--f4d7920ee2ce / TopLevel.js+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mflowprefer-unions-false--a5053c0a486d / TopLevel.js+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mflowprefer-unknown-false--f1ab9e45d823 / TopLevel.js+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mflowruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.js+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mjavascriptconverters-top-level--67aa452ed509 / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptraw-type-any--474b307c39db / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptacronym-style-pascal--d9e0c1bd777a / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mtypescriptconverters-all-objects--3a443babd1cb / TopLevel.ts+0 −5
@@ -592,15 +592,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
592592 if (val === null) {
593593 return null;
594594 }
595- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
596- return invalidValue(l("Date"), val, key, parent);
597595 const d = new Date(val);
598596 if (isNaN(d.valueOf())) {
599597 return invalidValue(l("Date"), val, key, parent);
600598 }
601- const date = typeof val === "string" ? val.slice(0, 10) : null;
602- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
603- return invalidValue(l("Date"), val, key, parent);
604599 return d;
605600 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mtypescriptnice-property-names-true--f4d7920ee2ce / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mtypescriptprefer-const-values-true--6b26e4d1265c / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mtypescriptprefer-types-true--df33e18681f9 / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mtypescriptprefer-unions-false--a5053c0a486d / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mtypescriptprefer-unknown-false--f1ab9e45d823 / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mtypescriptraw-type-any--474b307c39db / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mtypescriptreadonly-true--24da4fc107df / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Mtypescriptruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.ts+0 −5
@@ -488,15 +488,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
488488 if (val === null) {
489489 return null;
490490 }
491- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
492- return invalidValue(l("Date"), val, key, parent);
493491 const d = new Date(val);
494492 if (isNaN(d.valueOf())) {
495493 return invalidValue(l("Date"), val, key, parent);
496494 }
497- const date = typeof val === "string" ? val.slice(0, 10) : null;
498- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
499- return invalidValue(l("Date"), val, key, parent);
500495 return d;
501496 }
Test case

test/inputs/json/priority/combinations2.json

20 generated files · +0 −100
Mflowdefault / TopLevel.js+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mflownice-property-names-true--f4d7920ee2ce / TopLevel.js+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mflowprefer-unions-false--a5053c0a486d / TopLevel.js+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mflowprefer-unknown-false--f1ab9e45d823 / TopLevel.js+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mflowruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.js+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mjavascriptconverters-top-level--67aa452ed509 / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptraw-type-any--474b307c39db / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptacronym-style-pascal--d9e0c1bd777a / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mtypescriptconverters-all-objects--3a443babd1cb / TopLevel.ts+0 −5
@@ -520,15 +520,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
520520 if (val === null) {
521521 return null;
522522 }
523- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
524- return invalidValue(l("Date"), val, key, parent);
525523 const d = new Date(val);
526524 if (isNaN(d.valueOf())) {
527525 return invalidValue(l("Date"), val, key, parent);
528526 }
529- const date = typeof val === "string" ? val.slice(0, 10) : null;
530- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
531- return invalidValue(l("Date"), val, key, parent);
532527 return d;
533528 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mtypescriptnice-property-names-true--f4d7920ee2ce / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mtypescriptprefer-const-values-true--6b26e4d1265c / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mtypescriptprefer-types-true--df33e18681f9 / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mtypescriptprefer-unions-false--a5053c0a486d / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mtypescriptprefer-unknown-false--f1ab9e45d823 / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mtypescriptraw-type-any--474b307c39db / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mtypescriptreadonly-true--24da4fc107df / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Mtypescriptruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.ts+0 −5
@@ -440,15 +440,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
440440 if (val === null) {
441441 return null;
442442 }
443- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
444- return invalidValue(l("Date"), val, key, parent);
445443 const d = new Date(val);
446444 if (isNaN(d.valueOf())) {
447445 return invalidValue(l("Date"), val, key, parent);
448446 }
449- const date = typeof val === "string" ? val.slice(0, 10) : null;
450- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
451- return invalidValue(l("Date"), val, key, parent);
452447 return d;
453448 }
Test case

test/inputs/json/priority/combinations3.json

20 generated files · +0 −100
Mflowdefault / TopLevel.js+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mflownice-property-names-true--f4d7920ee2ce / TopLevel.js+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mflowprefer-unions-false--a5053c0a486d / TopLevel.js+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mflowprefer-unknown-false--f1ab9e45d823 / TopLevel.js+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mflowruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.js+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mjavascriptconverters-top-level--67aa452ed509 / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptraw-type-any--474b307c39db / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptacronym-style-pascal--d9e0c1bd777a / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mtypescriptconverters-all-objects--3a443babd1cb / TopLevel.ts+0 −5
@@ -656,15 +656,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
656656 if (val === null) {
657657 return null;
658658 }
659- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
660- return invalidValue(l("Date"), val, key, parent);
661659 const d = new Date(val);
662660 if (isNaN(d.valueOf())) {
663661 return invalidValue(l("Date"), val, key, parent);
664662 }
665- const date = typeof val === "string" ? val.slice(0, 10) : null;
666- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
667- return invalidValue(l("Date"), val, key, parent);
668663 return d;
669664 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mtypescriptnice-property-names-true--f4d7920ee2ce / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mtypescriptprefer-const-values-true--6b26e4d1265c / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mtypescriptprefer-types-true--df33e18681f9 / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mtypescriptprefer-unions-false--a5053c0a486d / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mtypescriptprefer-unknown-false--f1ab9e45d823 / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mtypescriptraw-type-any--474b307c39db / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mtypescriptreadonly-true--24da4fc107df / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Mtypescriptruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.ts+0 −5
@@ -544,15 +544,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
544544 if (val === null) {
545545 return null;
546546 }
547- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
548- return invalidValue(l("Date"), val, key, parent);
549547 const d = new Date(val);
550548 if (isNaN(d.valueOf())) {
551549 return invalidValue(l("Date"), val, key, parent);
552550 }
553- const date = typeof val === "string" ? val.slice(0, 10) : null;
554- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
555- return invalidValue(l("Date"), val, key, parent);
556551 return d;
557552 }
Test case

test/inputs/json/priority/combinations4.json

20 generated files · +0 −100
Mflowdefault / TopLevel.js+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mflownice-property-names-true--f4d7920ee2ce / TopLevel.js+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mflowprefer-unions-false--a5053c0a486d / TopLevel.js+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mflowprefer-unknown-false--f1ab9e45d823 / TopLevel.js+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mflowruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.js+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mjavascriptconverters-top-level--67aa452ed509 / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptraw-type-any--474b307c39db / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptacronym-style-pascal--d9e0c1bd777a / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mtypescriptconverters-all-objects--3a443babd1cb / TopLevel.ts+0 −5
@@ -742,15 +742,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
742742 if (val === null) {
743743 return null;
744744 }
745- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
746- return invalidValue(l("Date"), val, key, parent);
747745 const d = new Date(val);
748746 if (isNaN(d.valueOf())) {
749747 return invalidValue(l("Date"), val, key, parent);
750748 }
751- const date = typeof val === "string" ? val.slice(0, 10) : null;
752- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
753- return invalidValue(l("Date"), val, key, parent);
754749 return d;
755750 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mtypescriptnice-property-names-true--f4d7920ee2ce / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mtypescriptprefer-const-values-true--6b26e4d1265c / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mtypescriptprefer-types-true--df33e18681f9 / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mtypescriptprefer-unions-false--a5053c0a486d / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mtypescriptprefer-unknown-false--f1ab9e45d823 / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mtypescriptraw-type-any--474b307c39db / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mtypescriptreadonly-true--24da4fc107df / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Mtypescriptruntime-typecheck-ignore-unknown-properties-true--d792c40f022e / TopLevel.ts+0 −5
@@ -614,15 +614,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
614614 if (val === null) {
615615 return null;
616616 }
617- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
618- return invalidValue(l("Date"), val, key, parent);
619617 const d = new Date(val);
620618 if (isNaN(d.valueOf())) {
621619 return invalidValue(l("Date"), val, key, parent);
622620 }
623- const date = typeof val === "string" ? val.slice(0, 10) : null;
624- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
625- return invalidValue(l("Date"), val, key, parent);
626621 return d;
627622 }
Test case

test/inputs/json/priority/combined-enum.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/json/priority/direct-recursive.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/priority/empty-enum.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/priority/identifiers.json

4 generated files · +129 −15
Adartuse-json-annotation-true--1579285f69e0 / TopLevel.dart+129 −0
@@ -0,0 +1,129 @@
1+// To parse this JSON data, do
2+//
3+// final topLevel = topLevelFromJson(jsonString);
4+
5+import 'package:json_annotation/json_annotation.dart';
6+import 'dart:convert';
7+
8+part 'top_level.g.dart';
9+
10+TopLevel topLevelFromJson(String str) => TopLevel.fromJson(json.decode(str));
11+
12+String topLevelToJson(TopLevel data) => json.encode(data.toJson());
13+
14+@JsonSerializable()
15+class TopLevel {
16+ @JsonKey(name: "bla")
17+ final TopLevelBla bla;
18+ @JsonKey(name: "")
19+ final Empty empty;
20+ @JsonKey(name: "foo")
21+ final Foo foo;
22+ @JsonKey(name: "ThisIsA\ud83d\ude1cTough\"\n\nOne")
23+ final ThisIsAToughOne thisIsAToughOne;
24+ @JsonKey(name: "!")
25+ final int topLevel;
26+ @JsonKey(name: "Empty")
27+ final EmptyClass topLevelEmpty;
28+
29+ TopLevel({
30+ required this.bla,
31+ required this.empty,
32+ required this.foo,
33+ required this.thisIsAToughOne,
34+ required this.topLevel,
35+ required this.topLevelEmpty,
36+ });
37+
38+ factory TopLevel.fromJson(Map<String, dynamic> json) => _$TopLevelFromJson(json);
39+
40+ Map<String, dynamic> toJson() => _$TopLevelToJson(this);
41+}
42+
43+@JsonSerializable()
44+class TopLevelBla {
45+ @JsonKey(name: "bar")
46+ final int bar;
47+
48+ TopLevelBla({
49+ required this.bar,
50+ });
51+
52+ factory TopLevelBla.fromJson(Map<String, dynamic> json) => _$TopLevelBlaFromJson(json);
53+
54+ Map<String, dynamic> toJson() => _$TopLevelBlaToJson(this);
55+}
56+
57+@JsonSerializable()
58+class Empty {
59+ @JsonKey(name: "x")
60+ final int x;
61+
62+ Empty({
63+ required this.x,
64+ });
65+
66+ factory Empty.fromJson(Map<String, dynamic> json) => _$EmptyFromJson(json);
67+
68+ Map<String, dynamic> toJson() => _$EmptyToJson(this);
69+}
70+
71+@JsonSerializable()
72+class Foo {
73+ @JsonKey(name: "bla")
74+ final FooBla bla;
75+ @JsonKey(name: "_")
76+ final int empty;
77+ @JsonKey(name: "__")
78+ final int foo;
79+
80+ Foo({
81+ required this.bla,
82+ required this.empty,
83+ required this.foo,
84+ });
85+
86+ factory Foo.fromJson(Map<String, dynamic> json) => _$FooFromJson(json);
87+
88+ Map<String, dynamic> toJson() => _$FooToJson(this);
89+}
90+
91+@JsonSerializable()
92+class FooBla {
93+ FooBla();
94+
95+ factory FooBla.fromJson(Map<String, dynamic> json) => _$FooBlaFromJson(json);
96+
97+ Map<String, dynamic> toJson() => _$FooBlaToJson(this);
98+}
99+
100+@JsonSerializable()
101+class ThisIsAToughOne {
102+ @JsonKey(name: "\n\n\n")
103+ final int empty;
104+ @JsonKey(name: "\"")
105+ final int thisIsAToughOne;
106+
107+ ThisIsAToughOne({
108+ required this.empty,
109+ required this.thisIsAToughOne,
110+ });
111+
112+ factory ThisIsAToughOne.fromJson(Map<String, dynamic> json) => _$ThisIsAToughOneFromJson(json);
113+
114+ Map<String, dynamic> toJson() => _$ThisIsAToughOneToJson(this);
115+}
116+
117+@JsonSerializable()
118+class EmptyClass {
119+ @JsonKey(name: "y")
120+ final int y;
121+
122+ EmptyClass({
123+ required this.y,
124+ });
125+
126+ factory EmptyClass.fromJson(Map<String, dynamic> json) => _$EmptyClassFromJson(json);
127+
128+ Map<String, dynamic> toJson() => _$EmptyClassToJson(this);
129+}
Mflowdefault / TopLevel.js+0 −5
@@ -127,15 +127,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
127127 if (val === null) {
128128 return null;
129129 }
130- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
131- return invalidValue(l("Date"), val, key, parent);
132130 const d = new Date(val);
133131 if (isNaN(d.valueOf())) {
134132 return invalidValue(l("Date"), val, key, parent);
135133 }
136- const date = typeof val === "string" ? val.slice(0, 10) : null;
137- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
138- return invalidValue(l("Date"), val, key, parent);
139134 return d;
140135 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -124,15 +124,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
124124 if (val === null) {
125125 return null;
126126 }
127- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
128- return invalidValue(l("Date"), val, key, parent);
129127 const d = new Date(val);
130128 if (isNaN(d.valueOf())) {
131129 return invalidValue(l("Date"), val, key, parent);
132130 }
133- const date = typeof val === "string" ? val.slice(0, 10) : null;
134- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
135- return invalidValue(l("Date"), val, key, parent);
136131 return d;
137132 }
Test case

test/inputs/json/priority/issue2680-object-array.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/priority/issue2680-scalar-array.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Test case

test/inputs/json/priority/keywords.json

7 generated files · +3 −23
Mflowdefault / TopLevel.js+0 −5
@@ -1790,15 +1790,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
17901790 if (val === null) {
17911791 return null;
17921792 }
1793- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
1794- return invalidValue(l("Date"), val, key, parent);
17951793 const d = new Date(val);
17961794 if (isNaN(d.valueOf())) {
17971795 return invalidValue(l("Date"), val, key, parent);
17981796 }
1799- const date = typeof val === "string" ? val.slice(0, 10) : null;
1800- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
1801- return invalidValue(l("Date"), val, key, parent);
18021797 return d;
18031798 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -622,7 +622,7 @@ _DateOnlyConverter = PropTypes.shape({
622622 "DateOnlyConverter": PropTypes.oneOfType([Integer]).isRequired,
623623 });
624624 _DateTime = PropTypes.shape({
625- "DateTime": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
625+ "DateTime": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
626626 });
627627 _DateTimeStyles = PropTypes.shape({
628628 "DateTimeStyles": PropTypes.oneOfType([Integer]).isRequired,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -21,7 +21,7 @@ def to_class(c: Type[T], x: Any) -> dict:
2121
2222
2323 def from_datetime(x: Any) -> datetime.datetime:
24- return dateutil.parser.parse(x)
24+ return dateutil.parser.isoparse(x)
2525
2626
2727 def from_list(f: Callable[[Any], T], x: Any) -> list[T]:
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -1282,7 +1282,7 @@ export class DateTimeStyles extends S.Class<DateTimeStyles>("DateTimeStyles")({
12821282 }) {}
12831283
12841284 export class DateTime extends S.Class<DateTime>("DateTime")({
1285- "DateTime": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
1285+ "DateTime": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
12861286 }) {}
12871287
12881288 export class DateParseHandling extends S.Class<DateParseHandling>("DateParseHandling")({
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -1788,15 +1788,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
17881788 if (val === null) {
17891789 return null;
17901790 }
1791- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
1792- return invalidValue(l("Date"), val, key, parent);
17931791 const d = new Date(val);
17941792 if (isNaN(d.valueOf())) {
17951793 return invalidValue(l("Date"), val, key, parent);
17961794 }
1797- const date = typeof val === "string" ? val.slice(0, 10) : null;
1798- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
1799- return invalidValue(l("Date"), val, key, parent);
18001795 return d;
18011796 }
Mtypescriptprefer-types-true--df33e18681f9 / TopLevel.ts+0 −5
@@ -1788,15 +1788,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
17881788 if (val === null) {
17891789 return null;
17901790 }
1791- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
1792- return invalidValue(l("Date"), val, key, parent);
17931791 const d = new Date(val);
17941792 if (isNaN(d.valueOf())) {
17951793 return invalidValue(l("Date"), val, key, parent);
17961794 }
1797- const date = typeof val === "string" ? val.slice(0, 10) : null;
1798- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
1799- return invalidValue(l("Date"), val, key, parent);
18001795 return d;
18011796 }
Test case

test/inputs/json/priority/kotlin-enum-class-case-collision.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/priority/list.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/json/priority/name-style.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Test case

test/inputs/json/priority/nbl-stats.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -428,15 +428,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
428428 if (val === null) {
429429 return null;
430430 }
431- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
432- return invalidValue(l("Date"), val, key, parent);
433431 const d = new Date(val);
434432 if (isNaN(d.valueOf())) {
435433 return invalidValue(l("Date"), val, key, parent);
436434 }
437- const date = typeof val === "string" ? val.slice(0, 10) : null;
438- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
439- return invalidValue(l("Date"), val, key, parent);
440435 return d;
441436 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -373,15 +373,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
373373 if (val === null) {
374374 return null;
375375 }
376- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
377- return invalidValue(l("Date"), val, key, parent);
378376 const d = new Date(val);
379377 if (isNaN(d.valueOf())) {
380378 return invalidValue(l("Date"), val, key, parent);
381379 }
382- const date = typeof val === "string" ? val.slice(0, 10) : null;
383- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
384- return invalidValue(l("Date"), val, key, parent);
385380 return d;
386381 }
Test case

test/inputs/json/priority/nested-objects.json

4 generated files · +0 −20
Mflowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mjavascriptconverters-all-objects--3a443babd1cb / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/json/priority/no-classes.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Test case

test/inputs/json/priority/nst-test-suite.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -236,15 +236,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
236236 if (val === null) {
237237 return null;
238238 }
239- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
240- return invalidValue(l("Date"), val, key, parent);
241239 const d = new Date(val);
242240 if (isNaN(d.valueOf())) {
243241 return invalidValue(l("Date"), val, key, parent);
244242 }
245- const date = typeof val === "string" ? val.slice(0, 10) : null;
246- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
247- return invalidValue(l("Date"), val, key, parent);
248243 return d;
249244 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -233,15 +233,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
233233 if (val === null) {
234234 return null;
235235 }
236- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
237- return invalidValue(l("Date"), val, key, parent);
238236 const d = new Date(val);
239237 if (isNaN(d.valueOf())) {
240238 return invalidValue(l("Date"), val, key, parent);
241239 }
242- const date = typeof val === "string" ? val.slice(0, 10) : null;
243- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
244- return invalidValue(l("Date"), val, key, parent);
245240 return d;
246241 }
Test case

test/inputs/json/priority/number-map.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Test case

test/inputs/json/priority/omit-empty.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/priority/optional-union.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/priority/php-mixed-union.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Test case

test/inputs/json/priority/php-validation.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/priority/recursive.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -215,15 +215,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
215215 if (val === null) {
216216 return null;
217217 }
218- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
219- return invalidValue(l("Date"), val, key, parent);
220218 const d = new Date(val);
221219 if (isNaN(d.valueOf())) {
222220 return invalidValue(l("Date"), val, key, parent);
223221 }
224- const date = typeof val === "string" ? val.slice(0, 10) : null;
225- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
226- return invalidValue(l("Date"), val, key, parent);
227222 return d;
228223 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -215,15 +215,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
215215 if (val === null) {
216216 return null;
217217 }
218- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
219- return invalidValue(l("Date"), val, key, parent);
220218 const d = new Date(val);
221219 if (isNaN(d.valueOf())) {
222220 return invalidValue(l("Date"), val, key, parent);
223221 }
224- const date = typeof val === "string" ? val.slice(0, 10) : null;
225- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
226- return invalidValue(l("Date"), val, key, parent);
227222 return d;
228223 }
Test case

test/inputs/json/priority/simple-identifiers.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/json/priority/union-constructor-clash.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/json/priority/unions.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Test case

test/inputs/json/priority/url.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/json/priority/uuids.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/json/samples/bitcoin-block.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/samples/copy-with-property.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/json/samples/getting-started.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/json/samples/github-events.json

6 generated files · +33 −48
Mflowdefault / TopLevel.js+0 −5
@@ -384,15 +384,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
384384 if (val === null) {
385385 return null;
386386 }
387- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
388- return invalidValue(l("Date"), val, key, parent);
389387 const d = new Date(val);
390388 if (isNaN(d.valueOf())) {
391389 return invalidValue(l("Date"), val, key, parent);
392390 }
393- const date = typeof val === "string" ? val.slice(0, 10) : null;
394- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
395- return invalidValue(l("Date"), val, key, parent);
396391 return d;
397392 }
Mjavascript-prop-typesdefault / toplevel.js+16 −16
@@ -60,11 +60,11 @@ _User = PropTypes.shape({
6060 });
6161 _Comment = PropTypes.shape({
6262 "body": PropTypes.oneOfType([PropTypes.string]).isRequired,
63- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
63+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
6464 "html_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
6565 "id": PropTypes.oneOfType([Integer]).isRequired,
6666 "issue_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
67- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
67+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
6868 "url": PropTypes.oneOfType([PropTypes.string]).isRequired,
6969 "user": _User,
7070 });
@@ -89,10 +89,10 @@ _Label = PropTypes.shape({
8989 _Milestone = PropTypes.shape({
9090 "closed_at": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
9191 "closed_issues": PropTypes.oneOfType([Integer]).isRequired,
92- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
92+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
9393 "creator": _User,
9494 "description": PropTypes.oneOfType([PropTypes.string]).isRequired,
95- "due_on": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
95+ "due_on": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
9696 "html_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
9797 "id": PropTypes.oneOfType([Integer]).isRequired,
9898 "labels_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
@@ -100,7 +100,7 @@ _Milestone = PropTypes.shape({
100100 "open_issues": PropTypes.oneOfType([Integer]).isRequired,
101101 "state": PropTypes.oneOfType([PropTypes.string]).isRequired,
102102 "title": PropTypes.oneOfType([PropTypes.string]).isRequired,
103- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
103+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
104104 "url": PropTypes.oneOfType([PropTypes.string]).isRequired,
105105 });
106106 _IssuePullRequest = PropTypes.shape({
@@ -113,10 +113,10 @@ _Issue = PropTypes.shape({
113113 "assignee": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
114114 "assignees": PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.any)]).isRequired,
115115 "body": PropTypes.oneOfType([PropTypes.string]).isRequired,
116- "closed_at": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
116+ "closed_at": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])])])(props, name, ...args),
117117 "comments": PropTypes.oneOfType([Integer]).isRequired,
118118 "comments_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
119- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
119+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
120120 "events_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
121121 "html_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
122122 "id": PropTypes.oneOfType([Integer]).isRequired,
@@ -129,7 +129,7 @@ _Issue = PropTypes.shape({
129129 "repository_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
130130 "state": PropTypes.oneOfType([PropTypes.string]).isRequired,
131131 "title": PropTypes.oneOfType([PropTypes.string]).isRequired,
132- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
132+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
133133 "url": PropTypes.oneOfType([PropTypes.string]).isRequired,
134134 "user": _User,
135135 });
@@ -158,7 +158,7 @@ _BaseRepo = PropTypes.shape({
158158 "compare_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
159159 "contents_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
160160 "contributors_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
161- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
161+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
162162 "default_branch": PropTypes.oneOfType([PropTypes.string]).isRequired,
163163 "deployments_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
164164 "description": PropTypes.oneOfType([PropTypes.string]).isRequired,
@@ -199,7 +199,7 @@ _BaseRepo = PropTypes.shape({
199199 "owner": _User,
200200 "private": PropTypes.oneOfType([PropTypes.bool]).isRequired,
201201 "pulls_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
202- "pushed_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
202+ "pushed_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
203203 "releases_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
204204 "size": PropTypes.oneOfType([Integer]).isRequired,
205205 "ssh_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
@@ -212,7 +212,7 @@ _BaseRepo = PropTypes.shape({
212212 "tags_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
213213 "teams_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
214214 "trees_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
215- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
215+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
216216 "url": PropTypes.oneOfType([PropTypes.string]).isRequired,
217217 "watchers": PropTypes.oneOfType([Integer]).isRequired,
218218 "watchers_count": PropTypes.oneOfType([Integer]).isRequired,
@@ -232,12 +232,12 @@ _PayloadPullRequest = PropTypes.shape({
232232 "base": _Base,
233233 "body": PropTypes.oneOfType([PropTypes.string]).isRequired,
234234 "changed_files": PropTypes.oneOfType([Integer]).isRequired,
235- "closed_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
235+ "closed_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
236236 "comments": PropTypes.oneOfType([Integer]).isRequired,
237237 "comments_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
238238 "commits": PropTypes.oneOfType([Integer]).isRequired,
239239 "commits_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
240- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
240+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
241241 "deletions": PropTypes.oneOfType([Integer]).isRequired,
242242 "diff_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
243243 "head": _Base,
@@ -250,7 +250,7 @@ _PayloadPullRequest = PropTypes.shape({
250250 "mergeable": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
251251 "mergeable_state": PropTypes.oneOfType([PropTypes.string]).isRequired,
252252 "merged": PropTypes.oneOfType([PropTypes.bool]).isRequired,
253- "merged_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
253+ "merged_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
254254 "merged_by": _User,
255255 "milestone": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
256256 "number": PropTypes.oneOfType([Integer]).isRequired,
@@ -263,7 +263,7 @@ _PayloadPullRequest = PropTypes.shape({
263263 "state": PropTypes.oneOfType([PropTypes.string]).isRequired,
264264 "statuses_url": PropTypes.oneOfType([PropTypes.string]).isRequired,
265265 "title": PropTypes.oneOfType([PropTypes.string]).isRequired,
266- "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
266+ "updated_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
267267 "url": PropTypes.oneOfType([PropTypes.string]).isRequired,
268268 "user": _User,
269269 });
@@ -292,7 +292,7 @@ _TopLevelRepo = PropTypes.shape({
292292 });
293293 _TopLevel = PropTypes.shape({
294294 "actor": _Actor,
295- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
295+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
296296 "id": PropTypes.oneOfType([PropTypes.string]).isRequired,
297297 "org": PropTypes.oneOfType([_Actor, PropTypes.oneOf([null])]),
298298 "payload": _Payload,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -44,7 +44,7 @@ def to_enum(c: Type[EnumT], x: Any) -> EnumT:
4444
4545
4646 def from_datetime(x: Any) -> datetime.datetime:
47- return dateutil.parser.parse(x)
47+ return dateutil.parser.isoparse(x)
4848
4949
5050 def to_class(c: Type[T], x: Any) -> dict:
Mtypescript-effect-schemadefault / TopLevel.ts+16 −16
@@ -88,7 +88,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
8888 "compare_url": S.String,
8989 "contents_url": S.String,
9090 "contributors_url": S.String,
91- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
91+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
9292 "default_branch": S.String,
9393 "deployments_url": S.String,
9494 "description": S.String,
@@ -129,7 +129,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
129129 "owner": User,
130130 "private": S.Boolean,
131131 "pulls_url": S.String,
132- "pushed_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
132+ "pushed_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
133133 "releases_url": S.String,
134134 "size": S.Int,
135135 "ssh_url": S.String,
@@ -142,7 +142,7 @@ export class BaseRepo extends S.Class<BaseRepo>("BaseRepo")({
142142 "tags_url": S.String,
143143 "teams_url": S.String,
144144 "trees_url": S.String,
145- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
145+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
146146 "url": S.String,
147147 "watchers": S.Int,
148148 "watchers_count": S.Int,
@@ -163,12 +163,12 @@ export class PayloadPullRequest extends S.Class<PayloadPullRequest>("PayloadPull
163163 "base": Base,
164164 "body": S.String,
165165 "changed_files": S.Int,
166- "closed_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
166+ "closed_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
167167 "comments": S.Int,
168168 "comments_url": S.String,
169169 "commits": S.Int,
170170 "commits_url": S.String,
171- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
171+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
172172 "deletions": S.Int,
173173 "diff_url": S.String,
174174 "head": Base,
@@ -182,7 +182,7 @@ export class PayloadPullRequest extends S.Class<PayloadPullRequest>("PayloadPull
182182 "mergeable": S.Null,
183183 "mergeable_state": S.String,
184184 "merged": S.Boolean,
185- "merged_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
185+ "merged_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
186186 "merged_by": User,
187187 "milestone": S.Null,
188188 "number": S.Int,
@@ -195,18 +195,18 @@ export class PayloadPullRequest extends S.Class<PayloadPullRequest>("PayloadPull
195195 "state": S.String,
196196 "statuses_url": S.String,
197197 "title": S.String,
198- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
198+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
199199 "url": S.String,
200200 "user": User,
201201 }) {}
202202
203203 export class Comment extends S.Class<Comment>("Comment")({
204204 "body": S.String,
205- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
205+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
206206 "html_url": S.String,
207207 "id": S.Int,
208208 "issue_url": S.String,
209- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
209+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
210210 "url": S.String,
211211 "user": User,
212212 }) {}
@@ -214,10 +214,10 @@ export class Comment extends S.Class<Comment>("Comment")({
214214 export class Milestone extends S.Class<Milestone>("Milestone")({
215215 "closed_at": S.Null,
216216 "closed_issues": S.Int,
217- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
217+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
218218 "creator": User,
219219 "description": S.String,
220- "due_on": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
220+ "due_on": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10)))),
221221 "html_url": S.String,
222222 "id": S.Int,
223223 "labels_url": S.String,
@@ -225,7 +225,7 @@ export class Milestone extends S.Class<Milestone>("Milestone")({
225225 "open_issues": S.Int,
226226 "state": S.String,
227227 "title": S.String,
228- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
228+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
229229 "url": S.String,
230230 }) {}
231231
@@ -252,10 +252,10 @@ export class Issue extends S.Class<Issue>("Issue")({
252252 "assignee": S.Null,
253253 "assignees": S.Array(S.Any),
254254 "body": S.String,
255- "closed_at": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
255+ "closed_at": S.NullOr(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10)))),
256256 "comments": S.Int,
257257 "comments_url": S.String,
258- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
258+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
259259 "events_url": S.String,
260260 "html_url": S.String,
261261 "id": S.Int,
@@ -268,7 +268,7 @@ export class Issue extends S.Class<Issue>("Issue")({
268268 "repository_url": S.String,
269269 "state": S.String,
270270 "title": S.String,
271- "updated_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
271+ "updated_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
272272 "url": S.String,
273273 "user": User,
274274 }) {}
@@ -284,7 +284,7 @@ export class Actor extends S.Class<Actor>("Actor")({
284284
285285 export class TopLevelElement extends S.Class<TopLevelElement>("TopLevelElement")({
286286 "actor": Actor,
287- "created_at": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
287+ "created_at": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
288288 "id": S.String,
289289 "org": S.optional(Actor),
290290 "payload": Payload,
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -382,15 +382,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
382382 if (val === null) {
383383 return null;
384384 }
385- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
386- return invalidValue(l("Date"), val, key, parent);
387385 const d = new Date(val);
388386 if (isNaN(d.valueOf())) {
389387 return invalidValue(l("Date"), val, key, parent);
390388 }
391- const date = typeof val === "string" ? val.slice(0, 10) : null;
392- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
393- return invalidValue(l("Date"), val, key, parent);
394389 return d;
395390 }
Test case

test/inputs/json/samples/kitchen-sink.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -128,15 +128,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
128128 if (val === null) {
129129 return null;
130130 }
131- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
132- return invalidValue(l("Date"), val, key, parent);
133131 const d = new Date(val);
134132 if (isNaN(d.valueOf())) {
135133 return invalidValue(l("Date"), val, key, parent);
136134 }
137- const date = typeof val === "string" ? val.slice(0, 10) : null;
138- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
139- return invalidValue(l("Date"), val, key, parent);
140135 return d;
141136 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -128,15 +128,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
128128 if (val === null) {
129129 return null;
130130 }
131- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
132- return invalidValue(l("Date"), val, key, parent);
133131 const d = new Date(val);
134132 if (isNaN(d.valueOf())) {
135133 return invalidValue(l("Date"), val, key, parent);
136134 }
137- const date = typeof val === "string" ? val.slice(0, 10) : null;
138- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
139- return invalidValue(l("Date"), val, key, parent);
140135 return d;
141136 }
Test case

test/inputs/json/samples/null-safe.json

6 generated files · +3 −18
Mflowdefault / TopLevel.js+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Mjavascript-prop-typesdefault / toplevel.js+1 −1
@@ -23,7 +23,7 @@ _Address = PropTypes.shape({
2323 });
2424 _Item = PropTypes.shape({
2525 "address": PropTypes.oneOfType([_Address, PropTypes.oneOf([null])]),
26- "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])]),
26+ "created_at": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])]),
2727 "name": PropTypes.oneOfType([PropTypes.string]).isRequired,
2828 "sex": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([Integer, PropTypes.oneOf([null])])])(props, name, ...args),
2929 });
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mpythondefault / quicktype.py+1 −1
@@ -27,7 +27,7 @@ def from_union(fs, x):
2727
2828
2929 def from_datetime(x: Any) -> datetime.datetime:
30- return dateutil.parser.parse(x)
30+ return dateutil.parser.isoparse(x)
3131
3232
3333 def from_int(x: Any) -> int:
Mtypescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -9,7 +9,7 @@ export class Address extends S.Class<Address>("Address")({
99
1010 export class Item extends S.Class<Item>("Item")({
1111 "address": S.optional(Address),
12- "created_at": S.optional(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
12+ "created_at": S.optional(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10)))),
1313 "name": S.String,
1414 "sex": S.NullOr(S.Int),
1515 }) {}
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Test case

test/inputs/json/samples/objc-control-characters.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/json/samples/pokedex.json

4 generated files · +0 −20
Mflowdefault / TopLevel.js+0 −5
@@ -148,15 +148,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
148148 if (val === null) {
149149 return null;
150150 }
151- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
152- return invalidValue(l("Date"), val, key, parent);
153151 const d = new Date(val);
154152 if (isNaN(d.valueOf())) {
155153 return invalidValue(l("Date"), val, key, parent);
156154 }
157- const date = typeof val === "string" ? val.slice(0, 10) : null;
158- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
159- return invalidValue(l("Date"), val, key, parent);
160155 return d;
161156 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -125,15 +125,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
125125 if (val === null) {
126126 return null;
127127 }
128- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
129- return invalidValue(l("Date"), val, key, parent);
130128 const d = new Date(val);
131129 if (isNaN(d.valueOf())) {
132130 return invalidValue(l("Date"), val, key, parent);
133131 }
134- const date = typeof val === "string" ? val.slice(0, 10) : null;
135- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
136- return invalidValue(l("Date"), val, key, parent);
137132 return d;
138133 }
Mtypescriptprefer-types-true--df33e18681f9 / TopLevel.ts+0 −5
@@ -125,15 +125,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
125125 if (val === null) {
126126 return null;
127127 }
128- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
129- return invalidValue(l("Date"), val, key, parent);
130128 const d = new Date(val);
131129 if (isNaN(d.valueOf())) {
132130 return invalidValue(l("Date"), val, key, parent);
133131 }
134- const date = typeof val === "string" ? val.slice(0, 10) : null;
135- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
136- return invalidValue(l("Date"), val, key, parent);
137132 return d;
138133 }
Test case

test/inputs/json/samples/reddit.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -237,15 +237,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
237237 if (val === null) {
238238 return null;
239239 }
240- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
241- return invalidValue(l("Date"), val, key, parent);
242240 const d = new Date(val);
243241 if (isNaN(d.valueOf())) {
244242 return invalidValue(l("Date"), val, key, parent);
245243 }
246- const date = typeof val === "string" ? val.slice(0, 10) : null;
247- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
248- return invalidValue(l("Date"), val, key, parent);
249244 return d;
250245 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -222,15 +222,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
222222 if (val === null) {
223223 return null;
224224 }
225- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
226- return invalidValue(l("Date"), val, key, parent);
227225 const d = new Date(val);
228226 if (isNaN(d.valueOf())) {
229227 return invalidValue(l("Date"), val, key, parent);
230228 }
231- const date = typeof val === "string" ? val.slice(0, 10) : null;
232- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
233- return invalidValue(l("Date"), val, key, parent);
234229 return d;
235230 }
Test case

test/inputs/json/samples/simple-object.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/json/samples/spotify-album.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -166,15 +166,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
166166 if (val === null) {
167167 return null;
168168 }
169- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
170- return invalidValue(l("Date"), val, key, parent);
171169 const d = new Date(val);
172170 if (isNaN(d.valueOf())) {
173171 return invalidValue(l("Date"), val, key, parent);
174172 }
175- const date = typeof val === "string" ? val.slice(0, 10) : null;
176- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
177- return invalidValue(l("Date"), val, key, parent);
178173 return d;
179174 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -166,15 +166,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
166166 if (val === null) {
167167 return null;
168168 }
169- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
170- return invalidValue(l("Date"), val, key, parent);
171169 const d = new Date(val);
172170 if (isNaN(d.valueOf())) {
173171 return invalidValue(l("Date"), val, key, parent);
174172 }
175- const date = typeof val === "string" ? val.slice(0, 10) : null;
176- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
177- return invalidValue(l("Date"), val, key, parent);
178173 return d;
179174 }
Test case

test/inputs/json/samples/us-avg-temperatures.json

3 generated files · +0 −15
Mflowdefault / TopLevel.js+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Test case

test/inputs/json/samples/us-senators.json

5 generated files · +6 −21
Mflowdefault / TopLevel.js+0 −5
@@ -201,15 +201,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
201201 if (val === null) {
202202 return null;
203203 }
204- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
205- return invalidValue(l("Date"), val, key, parent);
206204 const d = new Date(val);
207205 if (isNaN(d.valueOf())) {
208206 return invalidValue(l("Date"), val, key, parent);
209207 }
210- const date = typeof val === "string" ? val.slice(0, 10) : null;
211- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
212- return invalidValue(l("Date"), val, key, parent);
213208 return d;
214209 }
Mjavascript-prop-typesdefault / toplevel.js+3 −3
@@ -43,7 +43,7 @@ _Extra = PropTypes.shape({
4343 });
4444 _Person = PropTypes.shape({
4545 "bioguideid": PropTypes.oneOfType([PropTypes.string]).isRequired,
46- "birthday": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
46+ "birthday": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
4747 "cspanid": PropTypes.oneOfType([Integer]).isRequired,
4848 "firstname": PropTypes.oneOfType([PropTypes.string]).isRequired,
4949 "gender": _Gender,
@@ -66,7 +66,7 @@ _Object = PropTypes.shape({
6666 "current": PropTypes.oneOfType([PropTypes.bool]).isRequired,
6767 "description": PropTypes.oneOfType([PropTypes.string]).isRequired,
6868 "district": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOf([null])])(props, name, ...args),
69- "enddate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
69+ "enddate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
7070 "extra": _Extra,
7171 "leadership_title": (props, name, ...args) => props[name] === undefined ? new Error("Expected required property") : PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string])])(props, name, ...args),
7272 "party": _Party,
@@ -78,7 +78,7 @@ _Object = PropTypes.shape({
7878 "senator_class_label": _SenatorClassLabel,
7979 "senator_rank": _SenatorRank,
8080 "senator_rank_label": _SenatorRankLabel,
81- "startdate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
81+ "startdate": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
8282 "state": PropTypes.oneOfType([PropTypes.string]).isRequired,
8383 "title": _Title,
8484 "title_long": _RoleTypeLabel,
Mjavascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mtypescript-effect-schemadefault / TopLevel.ts+3 −3
@@ -80,7 +80,7 @@ export type Title = S.Schema.Type<typeof Title>;
8080
8181 export class Person extends S.Class<Person>("Person")({
8282 "bioguideid": S.String,
83- "birthday": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
83+ "birthday": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
8484 "cspanid": S.Int,
8585 "firstname": S.String,
8686 "gender": Gender,
@@ -112,7 +112,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
112112 "current": S.Boolean,
113113 "description": S.String,
114114 "district": S.Null,
115- "enddate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
115+ "enddate": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
116116 "extra": Extra,
117117 "leadership_title": S.NullOr(S.String),
118118 "party": Party,
@@ -124,7 +124,7 @@ export class ObjectElement extends S.Class<ObjectElement>("ObjectElement")({
124124 "senator_class_label": SenatorClassLabel,
125125 "senator_rank": SenatorRank,
126126 "senator_rank_label": SenatorRankLabel,
127- "startdate": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
127+ "startdate": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
128128 "state": S.String,
129129 "title": Title,
130130 "title_long": RoleTypeLabel,
Mtypescriptdefault / TopLevel.ts+0 −5
@@ -178,15 +178,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
178178 if (val === null) {
179179 return null;
180180 }
181- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
182- return invalidValue(l("Date"), val, key, parent);
183181 const d = new Date(val);
184182 if (isNaN(d.valueOf())) {
185183 return invalidValue(l("Date"), val, key, parent);
186184 }
187- const date = typeof val === "string" ? val.slice(0, 10) : null;
188- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
189- return invalidValue(l("Date"), val, key, parent);
190185 return d;
191186 }
Test case

test/inputs/schema/accessors.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/schema/all-of-additional-properties-false.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -108,15 +108,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
108108 if (val === null) {
109109 return null;
110110 }
111- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
112- return invalidValue(l("Date"), val, key, parent);
113111 const d = new Date(val);
114112 if (isNaN(d.valueOf())) {
115113 return invalidValue(l("Date"), val, key, parent);
116114 }
117- const date = typeof val === "string" ? val.slice(0, 10) : null;
118- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
119- return invalidValue(l("Date"), val, key, parent);
120115 return d;
121116 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/schema/any.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/schema/bool-string.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/schema/boolean-subschema.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/camelCase.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/schema/class-map-union.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -113,15 +113,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
113113 if (val === null) {
114114 return null;
115115 }
116- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
117- return invalidValue(l("Date"), val, key, parent);
118116 const d = new Date(val);
119117 if (isNaN(d.valueOf())) {
120118 return invalidValue(l("Date"), val, key, parent);
121119 }
122- const date = typeof val === "string" ? val.slice(0, 10) : null;
123- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
124- return invalidValue(l("Date"), val, key, parent);
125120 return d;
126121 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -113,15 +113,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
113113 if (val === null) {
114114 return null;
115115 }
116- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
117- return invalidValue(l("Date"), val, key, parent);
118116 const d = new Date(val);
119117 if (isNaN(d.valueOf())) {
120118 return invalidValue(l("Date"), val, key, parent);
121119 }
122- const date = typeof val === "string" ? val.slice(0, 10) : null;
123- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
124- return invalidValue(l("Date"), val, key, parent);
125120 return d;
126121 }
Test case

test/inputs/schema/class-with-additional.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/schema/comment-injection-enum-nested-comment.schema

4 generated files · +0 −20
Mcomment-injection-typescriptdefault / TopLevel.ts+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Mschema-flowdefault / TopLevel.js+0 −5
@@ -111,15 +111,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
111111 if (val === null) {
112112 return null;
113113 }
114- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
115- return invalidValue(l("Date"), val, key, parent);
116114 const d = new Date(val);
117115 if (isNaN(d.valueOf())) {
118116 return invalidValue(l("Date"), val, key, parent);
119117 }
120- const date = typeof val === "string" ? val.slice(0, 10) : null;
121- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
122- return invalidValue(l("Date"), val, key, parent);
123118 return d;
124119 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Test case

test/inputs/schema/comment-injection-enum.schema

4 generated files · +0 −20
Mcomment-injection-typescriptdefault / TopLevel.ts+0 −5
@@ -116,15 +116,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
116116 if (val === null) {
117117 return null;
118118 }
119- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
120- return invalidValue(l("Date"), val, key, parent);
121119 const d = new Date(val);
122120 if (isNaN(d.valueOf())) {
123121 return invalidValue(l("Date"), val, key, parent);
124122 }
125- const date = typeof val === "string" ? val.slice(0, 10) : null;
126- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
127- return invalidValue(l("Date"), val, key, parent);
128123 return d;
129124 }
Mschema-flowdefault / TopLevel.js+0 −5
@@ -117,15 +117,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
117117 if (val === null) {
118118 return null;
119119 }
120- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
121- return invalidValue(l("Date"), val, key, parent);
122120 const d = new Date(val);
123121 if (isNaN(d.valueOf())) {
124122 return invalidValue(l("Date"), val, key, parent);
125123 }
126- const date = typeof val === "string" ? val.slice(0, 10) : null;
127- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
128- return invalidValue(l("Date"), val, key, parent);
129124 return d;
130125 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -116,15 +116,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
116116 if (val === null) {
117117 return null;
118118 }
119- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
120- return invalidValue(l("Date"), val, key, parent);
121119 const d = new Date(val);
122120 if (isNaN(d.valueOf())) {
123121 return invalidValue(l("Date"), val, key, parent);
124122 }
125- const date = typeof val === "string" ? val.slice(0, 10) : null;
126- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
127- return invalidValue(l("Date"), val, key, parent);
128123 return d;
129124 }
Test case

test/inputs/schema/comment-injection-nested-comment.schema

4 generated files · +0 −20
Mcomment-injection-typescriptdefault / TopLevel.ts+0 −5
@@ -108,15 +108,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
108108 if (val === null) {
109109 return null;
110110 }
111- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
112- return invalidValue(l("Date"), val, key, parent);
113111 const d = new Date(val);
114112 if (isNaN(d.valueOf())) {
115113 return invalidValue(l("Date"), val, key, parent);
116114 }
117- const date = typeof val === "string" ? val.slice(0, 10) : null;
118- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
119- return invalidValue(l("Date"), val, key, parent);
120115 return d;
121116 }
Mschema-flowdefault / TopLevel.js+0 −5
@@ -108,15 +108,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
108108 if (val === null) {
109109 return null;
110110 }
111- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
112- return invalidValue(l("Date"), val, key, parent);
113111 const d = new Date(val);
114112 if (isNaN(d.valueOf())) {
115113 return invalidValue(l("Date"), val, key, parent);
116114 }
117- const date = typeof val === "string" ? val.slice(0, 10) : null;
118- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
119- return invalidValue(l("Date"), val, key, parent);
120115 return d;
121116 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -108,15 +108,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
108108 if (val === null) {
109109 return null;
110110 }
111- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
112- return invalidValue(l("Date"), val, key, parent);
113111 const d = new Date(val);
114112 if (isNaN(d.valueOf())) {
115113 return invalidValue(l("Date"), val, key, parent);
116114 }
117- const date = typeof val === "string" ? val.slice(0, 10) : null;
118- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
119- return invalidValue(l("Date"), val, key, parent);
120115 return d;
121116 }
Test case

test/inputs/schema/comment-injection.schema

4 generated files · +0 −20
Mcomment-injection-typescriptdefault / TopLevel.ts+0 −5
@@ -136,15 +136,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
136136 if (val === null) {
137137 return null;
138138 }
139- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
140- return invalidValue(l("Date"), val, key, parent);
141139 const d = new Date(val);
142140 if (isNaN(d.valueOf())) {
143141 return invalidValue(l("Date"), val, key, parent);
144142 }
145- const date = typeof val === "string" ? val.slice(0, 10) : null;
146- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
147- return invalidValue(l("Date"), val, key, parent);
148143 return d;
149144 }
Mschema-flowdefault / TopLevel.js+0 −5
@@ -136,15 +136,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
136136 if (val === null) {
137137 return null;
138138 }
139- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
140- return invalidValue(l("Date"), val, key, parent);
141139 const d = new Date(val);
142140 if (isNaN(d.valueOf())) {
143141 return invalidValue(l("Date"), val, key, parent);
144142 }
145- const date = typeof val === "string" ? val.slice(0, 10) : null;
146- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
147- return invalidValue(l("Date"), val, key, parent);
148143 return d;
149144 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -136,15 +136,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
136136 if (val === null) {
137137 return null;
138138 }
139- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
140- return invalidValue(l("Date"), val, key, parent);
141139 const d = new Date(val);
142140 if (isNaN(d.valueOf())) {
143141 return invalidValue(l("Date"), val, key, parent);
144142 }
145- const date = typeof val === "string" ? val.slice(0, 10) : null;
146- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
147- return invalidValue(l("Date"), val, key, parent);
148143 return d;
149144 }
Test case

test/inputs/schema/const-non-string.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/schema/constructor.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/cut-enum.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/date-time-or-string.schema

6 generated files · +3 −18
Mschema-flowdefault / TopLevel.js+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Mschema-javascript-prop-typesdefault / toplevel.js+1 −1
@@ -15,7 +15,7 @@ import PropTypes from "prop-types";
1515 let _TopLevel;
1616 const _BarEnum = PropTypes.oneOf(['quux']);
1717 _TopLevel = PropTypes.shape({
18- "bar": PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), _BarEnum])]).isRequired,
18+ "bar": PropTypes.oneOfType([PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), _BarEnum])]).isRequired,
1919 "foo": PropTypes.oneOfType([PropTypes.string]).isRequired,
2020 });
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-pythondefault / quicktype.py+1 −1
@@ -10,7 +10,7 @@ EnumT = TypeVar("EnumT", bound=Enum)
1010
1111
1212 def from_datetime(x: Any) -> datetime.datetime:
13- return dateutil.parser.parse(x)
13+ return dateutil.parser.isoparse(x)
1414
1515
1616 def from_union(fs, x):
Mschema-typescript-effect-schemadefault / TopLevel.ts+1 −1
@@ -7,6 +7,6 @@ export const BarEnum = S.Literal(
77 export type BarEnum = S.Schema.Type<typeof BarEnum>;
88
99 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
10- "bar": S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)), BarEnum),
10+ "bar": S.Union(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))), BarEnum),
1111 "foo": S.String,
1212 }) {}
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Test case

test/inputs/schema/date-time.schema

6 generated files · +10 −25
Mschema-flowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mschema-javascript-prop-typesdefault / toplevel.js+3 −3
@@ -16,9 +16,9 @@ const Integer = (props, name) => props[name] == null || Number.isInteger(props[n
1616 let _TopLevel;
1717 const _ComplexUnionArrayEnum = PropTypes.oneOf(['foo', 'bar']);
1818 _TopLevel = PropTypes.shape({
19- "complex-union-array": PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), _ComplexUnionArrayEnum, Integer]))]).isRequired,
20- "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
21- "date-time": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
19+ "complex-union-array": PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), _ComplexUnionArrayEnum, Integer]))]).isRequired,
20+ "date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
21+ "date-time": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2222 "time": PropTypes.oneOfType([PropTypes.string]).isRequired,
2323 "union-array": PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string)]).isRequired,
2424 });
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-pythondefault / quicktype.py+2 −2
@@ -21,7 +21,7 @@ def from_int(x: Any) -> int:
2121
2222
2323 def from_datetime(x: Any) -> datetime.datetime:
24- return dateutil.parser.parse(x)
24+ return dateutil.parser.isoparse(x)
2525
2626
2727 def from_union(fs, x):
@@ -39,7 +39,7 @@ def from_date(x: Any) -> datetime.date:
3939
4040
4141 def from_time(x: Any) -> datetime.time:
42- assert isinstance(x, str) and re.match(r"^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?$", x)
42+ assert isinstance(x, str) and re.match(r"^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})?$", x)
4343 return dateutil.parser.parse(x).timetz()
Mschema-typescript-effect-schemadefault / TopLevel.ts+5 −5
@@ -8,9 +8,9 @@ export const ComplexUnionArrayEnum = S.Literal(
88 export type ComplexUnionArrayEnum = S.Schema.Type<typeof ComplexUnionArrayEnum>;
99
1010 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
11- "complex-union-array": S.Array(S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)), ComplexUnionArrayEnum, S.Int)),
12- "date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
13- "date-time": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
14- "time": S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
15- "union-array": S.Array(S.Union(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)), S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)), S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)))),
11+ "complex-union-array": S.Array(S.Union(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))), ComplexUnionArrayEnum, S.Int)),
12+ "date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
13+ "date-time": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
14+ "time": S.String.pipe(S.pattern(/^(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i)),
15+ "union-array": S.Array(S.Union(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)), S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))), S.String.pipe(S.pattern(/^(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i)))),
1616 }) {}
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/schema/default-value.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/description-with-double-quotes.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/schema/description.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -135,15 +135,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
135135 if (val === null) {
136136 return null;
137137 }
138- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
139- return invalidValue(l("Date"), val, key, parent);
140138 const d = new Date(val);
141139 if (isNaN(d.valueOf())) {
142140 return invalidValue(l("Date"), val, key, parent);
143141 }
144- const date = typeof val === "string" ? val.slice(0, 10) : null;
145- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
146- return invalidValue(l("Date"), val, key, parent);
147142 return d;
148143 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -133,15 +133,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
133133 if (val === null) {
134134 return null;
135135 }
136- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
137- return invalidValue(l("Date"), val, key, parent);
138136 const d = new Date(val);
139137 if (isNaN(d.valueOf())) {
140138 return invalidValue(l("Date"), val, key, parent);
141139 }
142- const date = typeof val === "string" ? val.slice(0, 10) : null;
143- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
144- return invalidValue(l("Date"), val, key, parent);
145140 return d;
146141 }
Test case

test/inputs/schema/direct-union.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/schema/empty-object.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Test case

test/inputs/schema/enum-large.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -125,15 +125,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
125125 if (val === null) {
126126 return null;
127127 }
128- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
129- return invalidValue(l("Date"), val, key, parent);
130128 const d = new Date(val);
131129 if (isNaN(d.valueOf())) {
132130 return invalidValue(l("Date"), val, key, parent);
133131 }
134- const date = typeof val === "string" ? val.slice(0, 10) : null;
135- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
136- return invalidValue(l("Date"), val, key, parent);
137132 return d;
138133 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Test case

test/inputs/schema/enum-with-null.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/schema/enum-with-values.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/enum.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -118,15 +118,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
118118 if (val === null) {
119119 return null;
120120 }
121- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
122- return invalidValue(l("Date"), val, key, parent);
123121 const d = new Date(val);
124122 if (isNaN(d.valueOf())) {
125123 return invalidValue(l("Date"), val, key, parent);
126124 }
127- const date = typeof val === "string" ? val.slice(0, 10) : null;
128- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
129- return invalidValue(l("Date"), val, key, parent);
130125 return d;
131126 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -109,15 +109,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
109109 if (val === null) {
110110 return null;
111111 }
112- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
113- return invalidValue(l("Date"), val, key, parent);
114112 const d = new Date(val);
115113 if (isNaN(d.valueOf())) {
116114 return invalidValue(l("Date"), val, key, parent);
117115 }
118- const date = typeof val === "string" ? val.slice(0, 10) : null;
119- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
120- return invalidValue(l("Date"), val, key, parent);
121116 return d;
122117 }
Test case

test/inputs/schema/fractional-bounds.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/go-schema-pattern-properties.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/haskell-enum-forbidden.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/id-no-address.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/id-root.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/ie-suffix-singularization.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/schema/implicit-all-of.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/implicit-class-array-union.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/schema/implicit-one-of.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/integer-before-number.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/integer-float-union.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/integer-string.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/schema/integer-type.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -105,15 +105,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
105105 if (val === null) {
106106 return null;
107107 }
108- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
109- return invalidValue(l("Date"), val, key, parent);
110108 const d = new Date(val);
111109 if (isNaN(d.valueOf())) {
112110 return invalidValue(l("Date"), val, key, parent);
113111 }
114- const date = typeof val === "string" ? val.slice(0, 10) : null;
115- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
116- return invalidValue(l("Date"), val, key, parent);
117112 return d;
118113 }
Test case

test/inputs/schema/intersection-nested.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Test case

test/inputs/schema/intersection.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Test case

test/inputs/schema/issue2680-top-level-array.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Test case

test/inputs/schema/keyword-enum.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -432,15 +432,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
432432 if (val === null) {
433433 return null;
434434 }
435- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
436- return invalidValue(l("Date"), val, key, parent);
437435 const d = new Date(val);
438436 if (isNaN(d.valueOf())) {
439437 return invalidValue(l("Date"), val, key, parent);
440438 }
441- const date = typeof val === "string" ? val.slice(0, 10) : null;
442- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
443- return invalidValue(l("Date"), val, key, parent);
444439 return d;
445440 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/keyword-unions.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -2089,15 +2089,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
20892089 if (val === null) {
20902090 return null;
20912091 }
2092- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
2093- return invalidValue(l("Date"), val, key, parent);
20942092 const d = new Date(val);
20952093 if (isNaN(d.valueOf())) {
20962094 return invalidValue(l("Date"), val, key, parent);
20972095 }
2098- const date = typeof val === "string" ? val.slice(0, 10) : null;
2099- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
2100- return invalidValue(l("Date"), val, key, parent);
21012096 return d;
21022097 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -1093,15 +1093,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
10931093 if (val === null) {
10941094 return null;
10951095 }
1096- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
1097- return invalidValue(l("Date"), val, key, parent);
10981096 const d = new Date(val);
10991097 if (isNaN(d.valueOf())) {
11001098 return invalidValue(l("Date"), val, key, parent);
11011099 }
1102- const date = typeof val === "string" ? val.slice(0, 10) : null;
1103- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
1104- return invalidValue(l("Date"), val, key, parent);
11051100 return d;
11061101 }
Test case

test/inputs/schema/light.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Test case

test/inputs/schema/list.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/schema/min-max-items.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -103,15 +103,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
103103 if (val === null) {
104104 return null;
105105 }
106- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
107- return invalidValue(l("Date"), val, key, parent);
108106 const d = new Date(val);
109107 if (isNaN(d.valueOf())) {
110108 return invalidValue(l("Date"), val, key, parent);
111109 }
112- const date = typeof val === "string" ? val.slice(0, 10) : null;
113- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
114- return invalidValue(l("Date"), val, key, parent);
115110 return d;
116111 }
Test case

test/inputs/schema/minmax-integer.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/schema/minmax.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/schema/minmaxlength.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Test case

test/inputs/schema/multi-type-enum.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/schema/mutually-recursive.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/schema/nested-intersection-union.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/schema/non-standard-ref.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/nullable-optional-one-of.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/schema/object-type-required.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/optional-any.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/optional-const-ref.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -107,15 +107,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
107107 if (val === null) {
108108 return null;
109109 }
110- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
111- return invalidValue(l("Date"), val, key, parent);
112110 const d = new Date(val);
113111 if (isNaN(d.valueOf())) {
114112 return invalidValue(l("Date"), val, key, parent);
115113 }
116- const date = typeof val === "string" ? val.slice(0, 10) : null;
117- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
118- return invalidValue(l("Date"), val, key, parent);
119114 return d;
120115 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -107,15 +107,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
107107 if (val === null) {
108108 return null;
109109 }
110- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
111- return invalidValue(l("Date"), val, key, parent);
112110 const d = new Date(val);
113111 if (isNaN(d.valueOf())) {
114112 return invalidValue(l("Date"), val, key, parent);
115113 }
116- const date = typeof val === "string" ? val.slice(0, 10) : null;
117- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
118- return invalidValue(l("Date"), val, key, parent);
119114 return d;
120115 }
Test case

test/inputs/schema/optional-constraints.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/schema/optional-date-time.schema

6 generated files · +12 −27
Mschema-flowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mschema-javascript-prop-typesdefault / toplevel.js+4 −4
@@ -14,11 +14,11 @@ import PropTypes from "prop-types";
1414
1515 let _TopLevel;
1616 _TopLevel = PropTypes.shape({
17- "optional-date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])]),
18- "optional-date-time": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])]),
17+ "optional-date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])]),
18+ "optional-date-time": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time"), PropTypes.oneOf([null])]),
1919 "optional-time": PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.string]),
20- "required-date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
21- "required-date-time": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && /^(\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01]))(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d))?$/i.test(props[name]) && !Number.isNaN(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)) && new Date(Date.parse(`${props[name].slice(0, 10)}T00:00:00Z`)).toISOString().slice(0, 10) === props[name].slice(0, 10) ? null : new Error("Expected date-time")]).isRequired,
20+ "required-date": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
21+ "required-date-time": PropTypes.oneOfType([(props, name) => props[name] == null || typeof props[name] === "string" && !Number.isNaN(Date.parse(props[name])) ? null : new Error("Expected date-time")]).isRequired,
2222 "required-time": PropTypes.oneOfType([PropTypes.string]).isRequired,
2323 });
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-pythondefault / quicktype.py+2 −2
@@ -14,11 +14,11 @@ def from_date(x: Any) -> datetime.date:
1414
1515
1616 def from_datetime(x: Any) -> datetime.datetime:
17- return dateutil.parser.parse(x)
17+ return dateutil.parser.isoparse(x)
1818
1919
2020 def from_time(x: Any) -> datetime.time:
21- assert isinstance(x, str) and re.match(r"^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?$", x)
21+ assert isinstance(x, str) and re.match(r"^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})?$", x)
2222 return dateutil.parser.parse(x).timetz()
Mschema-typescript-effect-schemadefault / TopLevel.ts+6 −6
@@ -2,10 +2,10 @@ import * as S from "effect/Schema";
22
33
44 export class TopLevel extends S.Class<TopLevel>("TopLevel")({
5- "optional-date": S.optional(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/))),
6- "optional-date-time": S.optional(S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
7- "optional-time": S.optional(S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/))),
8- "required-date": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}$/)),
9- "required-date-time": S.String.pipe(S.pattern(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
10- "required-time": S.String.pipe(S.pattern(/^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/)),
5+ "optional-date": S.optional(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value))),
6+ "optional-date-time": S.optional(S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10)))),
7+ "optional-time": S.optional(S.String.pipe(S.pattern(/^(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i))),
8+ "required-date": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])$/), S.filter(value => (new Date(value + "T00:00:00Z").toJSON() || "").slice(0, 10) === value)),
9+ "required-date-time": S.String.pipe(S.pattern(/^\d{4}-(?:0[1-9]|1[0-2])-(?:[0-2]\d|3[01])T(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i), S.filter(value => (new Date(value.slice(0, 10) + "T00:00:00Z").toJSON() || "").slice(0, 10) === value.slice(0, 10))),
10+ "required-time": S.String.pipe(S.pattern(/^(?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/i)),
1111 }) {}
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/schema/optional-enum.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/optional-property.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -96,15 +96,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9696 if (val === null) {
9797 return null;
9898 }
99- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
100- return invalidValue(l("Date"), val, key, parent);
10199 const d = new Date(val);
102100 if (isNaN(d.valueOf())) {
103101 return invalidValue(l("Date"), val, key, parent);
104102 }
105- const date = typeof val === "string" ? val.slice(0, 10) : null;
106- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
107- return invalidValue(l("Date"), val, key, parent);
108103 return d;
109104 }
Test case

test/inputs/schema/pattern.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -104,15 +104,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
104104 if (val === null) {
105105 return null;
106106 }
107- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
108- return invalidValue(l("Date"), val, key, parent);
109107 const d = new Date(val);
110108 if (isNaN(d.valueOf())) {
111109 return invalidValue(l("Date"), val, key, parent);
112110 }
113- const date = typeof val === "string" ? val.slice(0, 10) : null;
114- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
115- return invalidValue(l("Date"), val, key, parent);
116111 return d;
117112 }
Test case

test/inputs/schema/postman-collection.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -107,15 +107,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
107107 if (val === null) {
108108 return null;
109109 }
110- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
111- return invalidValue(l("Date"), val, key, parent);
112110 const d = new Date(val);
113111 if (isNaN(d.valueOf())) {
114112 return invalidValue(l("Date"), val, key, parent);
115113 }
116- const date = typeof val === "string" ? val.slice(0, 10) : null;
117- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
118- return invalidValue(l("Date"), val, key, parent);
119114 return d;
120115 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -107,15 +107,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
107107 if (val === null) {
108108 return null;
109109 }
110- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
111- return invalidValue(l("Date"), val, key, parent);
112110 const d = new Date(val);
113111 if (isNaN(d.valueOf())) {
114112 return invalidValue(l("Date"), val, key, parent);
115113 }
116- const date = typeof val === "string" ? val.slice(0, 10) : null;
117- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
118- return invalidValue(l("Date"), val, key, parent);
119114 return d;
120115 }
Test case

test/inputs/schema/prefix-items.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/schema/recursive-union-flattening.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -110,15 +110,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
110110 if (val === null) {
111111 return null;
112112 }
113- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
114- return invalidValue(l("Date"), val, key, parent);
115113 const d = new Date(val);
116114 if (isNaN(d.valueOf())) {
117115 return invalidValue(l("Date"), val, key, parent);
118116 }
119- const date = typeof val === "string" ? val.slice(0, 10) : null;
120- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
121- return invalidValue(l("Date"), val, key, parent);
122117 return d;
123118 }
Test case

test/inputs/schema/ref-id-files.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/ref-remote.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/schema/renaming-bug.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -199,15 +199,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
199199 if (val === null) {
200200 return null;
201201 }
202- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
203- return invalidValue(l("Date"), val, key, parent);
204202 const d = new Date(val);
205203 if (isNaN(d.valueOf())) {
206204 return invalidValue(l("Date"), val, key, parent);
207205 }
208- const date = typeof val === "string" ? val.slice(0, 10) : null;
209- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
210- return invalidValue(l("Date"), val, key, parent);
211206 return d;
212207 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -184,15 +184,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
184184 if (val === null) {
185185 return null;
186186 }
187- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
188- return invalidValue(l("Date"), val, key, parent);
189187 const d = new Date(val);
190188 if (isNaN(d.valueOf())) {
191189 return invalidValue(l("Date"), val, key, parent);
192190 }
193- const date = typeof val === "string" ? val.slice(0, 10) : null;
194- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
195- return invalidValue(l("Date"), val, key, parent);
196191 return d;
197192 }
Test case

test/inputs/schema/required-draft3.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/required-non-properties.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/schema/required.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/rust-cycle-breaker-union.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Test case

test/inputs/schema/schema-constraints.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -98,15 +98,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9898 if (val === null) {
9999 return null;
100100 }
101- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
102- return invalidValue(l("Date"), val, key, parent);
103101 const d = new Date(val);
104102 if (isNaN(d.valueOf())) {
105103 return invalidValue(l("Date"), val, key, parent);
106104 }
107- const date = typeof val === "string" ? val.slice(0, 10) : null;
108- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
109- return invalidValue(l("Date"), val, key, parent);
110105 return d;
111106 }
Test case

test/inputs/schema/simple-ref.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/schema/strict-optional.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/top-level-array.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -100,15 +100,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
100100 if (val === null) {
101101 return null;
102102 }
103- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
104- return invalidValue(l("Date"), val, key, parent);
105103 const d = new Date(val);
106104 if (isNaN(d.valueOf())) {
107105 return invalidValue(l("Date"), val, key, parent);
108106 }
109- const date = typeof val === "string" ? val.slice(0, 10) : null;
110- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
111- return invalidValue(l("Date"), val, key, parent);
112107 return d;
113108 }
Test case

test/inputs/schema/top-level-enum.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Test case

test/inputs/schema/top-level-primitive-array.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -94,15 +94,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9494 if (val === null) {
9595 return null;
9696 }
97- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
98- return invalidValue(l("Date"), val, key, parent);
9997 const d = new Date(val);
10098 if (isNaN(d.valueOf())) {
10199 return invalidValue(l("Date"), val, key, parent);
102100 }
103- const date = typeof val === "string" ? val.slice(0, 10) : null;
104- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
105- return invalidValue(l("Date"), val, key, parent);
106101 return d;
107102 }
Test case

test/inputs/schema/top-level-primitive.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -97,15 +97,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9797 if (val === null) {
9898 return null;
9999 }
100- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
101- return invalidValue(l("Date"), val, key, parent);
102100 const d = new Date(val);
103101 if (isNaN(d.valueOf())) {
104102 return invalidValue(l("Date"), val, key, parent);
105103 }
106- const date = typeof val === "string" ? val.slice(0, 10) : null;
107- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
108- return invalidValue(l("Date"), val, key, parent);
109104 return d;
110105 }
Test case

test/inputs/schema/tuple.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/unevaluated-properties.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -115,15 +115,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
115115 if (val === null) {
116116 return null;
117117 }
118- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
119- return invalidValue(l("Date"), val, key, parent);
120118 const d = new Date(val);
121119 if (isNaN(d.valueOf())) {
122120 return invalidValue(l("Date"), val, key, parent);
123121 }
124- const date = typeof val === "string" ? val.slice(0, 10) : null;
125- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
126- return invalidValue(l("Date"), val, key, parent);
127122 return d;
128123 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -112,15 +112,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
112112 if (val === null) {
113113 return null;
114114 }
115- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
116- return invalidValue(l("Date"), val, key, parent);
117115 const d = new Date(val);
118116 if (isNaN(d.valueOf())) {
119117 return invalidValue(l("Date"), val, key, parent);
120118 }
121- const date = typeof val === "string" ? val.slice(0, 10) : null;
122- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
123- return invalidValue(l("Date"), val, key, parent);
124119 return d;
125120 }
Test case

test/inputs/schema/unicode-codepoint-length.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/union-int-double.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -99,15 +99,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
9999 if (val === null) {
100100 return null;
101101 }
102- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
103- return invalidValue(l("Date"), val, key, parent);
104102 const d = new Date(val);
105103 if (isNaN(d.valueOf())) {
106104 return invalidValue(l("Date"), val, key, parent);
107105 }
108- const date = typeof val === "string" ? val.slice(0, 10) : null;
109- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
110- return invalidValue(l("Date"), val, key, parent);
111106 return d;
112107 }
Test case

test/inputs/schema/union-list.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -102,15 +102,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
102102 if (val === null) {
103103 return null;
104104 }
105- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
106- return invalidValue(l("Date"), val, key, parent);
107105 const d = new Date(val);
108106 if (isNaN(d.valueOf())) {
109107 return invalidValue(l("Date"), val, key, parent);
110108 }
111- const date = typeof val === "string" ? val.slice(0, 10) : null;
112- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
113- return invalidValue(l("Date"), val, key, parent);
114109 return d;
115110 }
Test case

test/inputs/schema/union.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -101,15 +101,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
101101 if (val === null) {
102102 return null;
103103 }
104- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
105- return invalidValue(l("Date"), val, key, parent);
106104 const d = new Date(val);
107105 if (isNaN(d.valueOf())) {
108106 return invalidValue(l("Date"), val, key, parent);
109107 }
110- const date = typeof val === "string" ? val.slice(0, 10) : null;
111- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
112- return invalidValue(l("Date"), val, key, parent);
113108 return d;
114109 }
Test case

test/inputs/schema/uuid.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -107,15 +107,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
107107 if (val === null) {
108108 return null;
109109 }
110- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
111- return invalidValue(l("Date"), val, key, parent);
112110 const d = new Date(val);
113111 if (isNaN(d.valueOf())) {
114112 return invalidValue(l("Date"), val, key, parent);
115113 }
116- const date = typeof val === "string" ? val.slice(0, 10) : null;
117- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
118- return invalidValue(l("Date"), val, key, parent);
119114 return d;
120115 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -106,15 +106,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
106106 if (val === null) {
107107 return null;
108108 }
109- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
110- return invalidValue(l("Date"), val, key, parent);
111109 const d = new Date(val);
112110 if (isNaN(d.valueOf())) {
113111 return invalidValue(l("Date"), val, key, parent);
114112 }
115- const date = typeof val === "string" ? val.slice(0, 10) : null;
116- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
117- return invalidValue(l("Date"), val, key, parent);
118113 return d;
119114 }
Test case

test/inputs/schema/vega-lite.schema

3 generated files · +0 −15
Mschema-flowdefault / TopLevel.js+0 −5
@@ -6188,15 +6188,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
61886188 if (val === null) {
61896189 return null;
61906190 }
6191- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
6192- return invalidValue(l("Date"), val, key, parent);
61936191 const d = new Date(val);
61946192 if (isNaN(d.valueOf())) {
61956193 return invalidValue(l("Date"), val, key, parent);
61966194 }
6197- const date = typeof val === "string" ? val.slice(0, 10) : null;
6198- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
6199- return invalidValue(l("Date"), val, key, parent);
62006195 return d;
62016196 }
Mschema-javascriptdefault / TopLevel.js+0 −5
@@ -90,15 +90,10 @@ function transform(val, typ, getProps, key = '', parent = '') {
9090 if (val === null) {
9191 return null;
9292 }
93- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
94- return invalidValue(l("Date"), val, key, parent);
9593 const d = new Date(val);
9694 if (isNaN(d.valueOf())) {
9795 return invalidValue(l("Date"), val, key, parent);
9896 }
99- const date = typeof val === "string" ? val.slice(0, 10) : null;
100- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
101- return invalidValue(l("Date"), val, key, parent);
10297 return d;
10398 }
Mschema-typescriptdefault / TopLevel.ts+0 −5
@@ -5945,15 +5945,10 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
59455945 if (val === null) {
59465946 return null;
59475947 }
5948- if (!(val instanceof Date) && (typeof val !== "string" || !/^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[01])(?:T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))?$/i.test(val)))
5949- return invalidValue(l("Date"), val, key, parent);
59505948 const d = new Date(val);
59515949 if (isNaN(d.valueOf())) {
59525950 return invalidValue(l("Date"), val, key, parent);
59535951 }
5954- const date = typeof val === "string" ? val.slice(0, 10) : null;
5955- if (date !== null && new Date(date + "T00:00:00Z").toISOString().slice(0, 10) !== date)
5956- return invalidValue(l("Date"), val, key, parent);
59575952 return d;
59585953 }
No generated files match these filters.