Generated-output differences

quicktype output changed between the PR base and tested PR merge revisions.
← Back to the pull request
64test cases
64files differ
64modified
0new
0deleted
746changed lines
+629 −117insertions / deletions
Base 9972111a769f70210e3f9f62bb71483c9af59ea2 · PR merge b0c96ea52f455926d50660bdaeb8eabfcc1d3d6f · Head d6ee70d8b68fa392b2e7eb85d20eb7717aa2c03e · raw patch
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

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

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -77,10 +77,10 @@ class Result {
7777
7878 factory Result.fromJson(Map<String, dynamic> json) => Result(
7979 code: json["code"],
80- createdAt: DateTime.parse(json["created_at"]),
80+ createdAt: _parseDateTime(json["created_at"]),
8181 id: json["id"],
8282 name: json["name"],
83- updatedAt: DateTime.parse(json["updated_at"]),
83+ updatedAt: _parseDateTime(json["updated_at"]),
8484 uri: json["uri"],
8585 );
8686
@@ -93,3 +93,11 @@ class Result {
9393 "uri": uri,
9494 };
9595 }
96+
97+DateTime _parseDateTime(String value) {
98+ final date = value.substring(0, 10);
99+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
100+ throw FormatException('Invalid date-time', value);
101+ }
102+ return DateTime.parse(value.toUpperCase());
103+}
Test case

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

1 generated file · +16 −8
Mdartdefault / TopLevel.dart+16 −8
@@ -31,7 +31,7 @@ class TopLevel {
3131
3232 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
3333 actor: Actor.fromJson(json["actor"]),
34- createdAt: DateTime.parse(json["created_at"]),
34+ createdAt: _parseDateTime(json["created_at"]),
3535 id: json["id"],
3636 org: json["org"] == null ? null : Actor.fromJson(json["org"]),
3737 payload: Payload.fromJson(json["payload"]),
@@ -302,12 +302,12 @@ class PullRequest {
302302 base: Base.fromJson(json["base"]),
303303 body: json["body"],
304304 changedFiles: json["changed_files"],
305- closedAt: DateTime.parse(json["closed_at"]),
305+ closedAt: _parseDateTime(json["closed_at"]),
306306 comments: json["comments"],
307307 commentsUrl: json["comments_url"],
308308 commits: json["commits"],
309309 commitsUrl: json["commits_url"],
310- createdAt: DateTime.parse(json["created_at"]),
310+ createdAt: _parseDateTime(json["created_at"]),
311311 deletions: json["deletions"],
312312 diffUrl: json["diff_url"],
313313 head: Base.fromJson(json["head"]),
@@ -321,7 +321,7 @@ class PullRequest {
321321 mergeable: (json.containsKey("mergeable") ? json["mergeable"] : throw FormatException('Missing required property')),
322322 mergeableState: json["mergeable_state"],
323323 merged: json["merged"],
324- mergedAt: DateTime.parse(json["merged_at"]),
324+ mergedAt: _parseDateTime(json["merged_at"]),
325325 mergedBy: MergedBy.fromJson(json["merged_by"]),
326326 milestone: (json.containsKey("milestone") ? json["milestone"] : throw FormatException('Missing required property')),
327327 number: json["number"],
@@ -334,7 +334,7 @@ class PullRequest {
334334 state: json["state"],
335335 statusesUrl: json["statuses_url"],
336336 title: json["title"],
337- updatedAt: DateTime.parse(json["updated_at"]),
337+ updatedAt: _parseDateTime(json["updated_at"]),
338338 url: json["url"],
339339 user: MergedBy.fromJson(json["user"]),
340340 );
@@ -571,7 +571,7 @@ class BaseRepo {
571571 compareUrl: json["compare_url"],
572572 contentsUrl: json["contents_url"],
573573 contributorsUrl: json["contributors_url"],
574- createdAt: DateTime.parse(json["created_at"]),
574+ createdAt: _parseDateTime(json["created_at"]),
575575 defaultBranch: json["default_branch"],
576576 deploymentsUrl: json["deployments_url"],
577577 description: (json.containsKey("description") ? json["description"] : throw FormatException('Missing required property')),
@@ -612,7 +612,7 @@ class BaseRepo {
612612 owner: MergedBy.fromJson(json["owner"]),
613613 private: json["private"],
614614 pullsUrl: json["pulls_url"],
615- pushedAt: DateTime.parse(json["pushed_at"]),
615+ pushedAt: _parseDateTime(json["pushed_at"]),
616616 releasesUrl: json["releases_url"],
617617 size: json["size"],
618618 sshUrl: json["ssh_url"],
@@ -625,7 +625,7 @@ class BaseRepo {
625625 tagsUrl: json["tags_url"],
626626 teamsUrl: json["teams_url"],
627627 treesUrl: json["trees_url"],
628- updatedAt: DateTime.parse(json["updated_at"]),
628+ updatedAt: _parseDateTime(json["updated_at"]),
629629 url: json["url"],
630630 watchers: json["watchers"],
631631 watchersCount: json["watchers_count"],
@@ -895,3 +895,11 @@ class EnumValues<T> {
895895 return reverseMap;
896896 }
897897 }
898+
899+DateTime _parseDateTime(String value) {
900+ final date = value.substring(0, 10);
901+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
902+ throw FormatException('Invalid date-time', value);
903+ }
904+ return DateTime.parse(value.toUpperCase());
905+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -80,7 +80,7 @@ class Result {
8080 id: json["id"],
8181 images: List<Image>.from(json["images"].map((x) => Image.fromJson(x))),
8282 language: resultLanguageValues.map[json["language"]]!,
83- releaseDate: DateTime.parse(json["release_date"]),
83+ releaseDate: _parseDateTime(json["release_date"]),
8484 stars: json["stars"],
8585 tags: (json.containsKey("tags") ? json["tags"] : throw FormatException('Missing required property')) == null ? null : List<dynamic>.from((json.containsKey("tags") ? json["tags"] : throw FormatException('Missing required property'))!.map((x) => x)),
8686 title: json["title"],
@@ -325,3 +325,11 @@ class EnumValues<T> {
325325 return reverseMap;
326326 }
327327 }
328+
329+DateTime _parseDateTime(String value) {
330+ final date = value.substring(0, 10);
331+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
332+ throw FormatException('Invalid date-time', value);
333+ }
334+ return DateTime.parse(value.toUpperCase());
335+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -415,3 +415,11 @@ class Wind {
415415 "speed": speed,
416416 };
417417 }
418+
419+DateTime _parseDateTime(String value) {
420+ final date = value.substring(0, 10);
421+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
422+ throw FormatException('Invalid date-time', value);
423+ }
424+ return DateTime.parse(value.toUpperCase());
425+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

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

1 generated file · +11 −3
Mdartdefault / TopLevel.dart+11 −3
@@ -105,7 +105,7 @@ class Object {
105105 current: json["current"],
106106 description: json["description"],
107107 district: json["district"],
108- enddate: DateTime.parse(json["enddate"]),
108+ enddate: _parseDateTime(json["enddate"]),
109109 extra: Extra.fromJson(json["extra"]),
110110 id: json["id"],
111111 leadershipTitle: (json.containsKey("leadership_title") ? json["leadership_title"] : throw FormatException('Missing required property')),
@@ -116,7 +116,7 @@ class Object {
116116 roleTypeLabel: roleTypeLabelValues.map[json["role_type_label"]]!,
117117 senatorClass: (json.containsKey("senator_class") ? json["senator_class"] : throw FormatException('Missing required property')),
118118 senatorRank: (json.containsKey("senator_rank") ? json["senator_rank"] : throw FormatException('Missing required property')),
119- startdate: DateTime.parse(json["startdate"]),
119+ startdate: _parseDateTime(json["startdate"]),
120120 state: json["state"],
121121 title: titleValues.map[json["title"]]!,
122122 titleLong: roleTypeLabelValues.map[json["title_long"]]!,
@@ -233,7 +233,7 @@ class Person {
233233
234234 factory Person.fromJson(Map<String, dynamic> json) => Person(
235235 bioguideid: json["bioguideid"],
236- birthday: DateTime.parse(json["birthday"]),
236+ birthday: _parseDateTime(json["birthday"]),
237237 cspanid: json["cspanid"],
238238 firstname: json["firstname"],
239239 gender: genderValues.map[json["gender"]]!,
@@ -351,3 +351,11 @@ class EnumValues<T> {
351351 return reverseMap;
352352 }
353353 }
354+
355+DateTime _parseDateTime(String value) {
356+ final date = value.substring(0, 10);
357+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
358+ throw FormatException('Invalid date-time', value);
359+ }
360+ return DateTime.parse(value.toUpperCase());
361+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -439,3 +439,11 @@ class EnumValues<T> {
439439 return reverseMap;
440440 }
441441 }
442+
443+DateTime _parseDateTime(String value) {
444+ final date = value.substring(0, 10);
445+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
446+ throw FormatException('Invalid date-time', value);
447+ }
448+ return DateTime.parse(value.toUpperCase());
449+}
Test case

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

1 generated file · +11 −3
Mdartdefault / TopLevel.dart+11 −3
@@ -109,7 +109,7 @@ class Object {
109109 current: json["current"],
110110 description: json["description"],
111111 district: (json.containsKey("district") ? json["district"] : throw FormatException('Missing required property')),
112- enddate: DateTime.parse(json["enddate"]),
112+ enddate: _parseDateTime(json["enddate"]),
113113 extra: Extra.fromJson(json["extra"]),
114114 id: json["id"],
115115 leadershipTitle: (json.containsKey("leadership_title") ? json["leadership_title"] : throw FormatException('Missing required property')),
@@ -122,7 +122,7 @@ class Object {
122122 senatorClassLabel: senatorClassLabelValues.map[json["senator_class_label"]]!,
123123 senatorRank: senatorRankValues.map[json["senator_rank"]]!,
124124 senatorRankLabel: senatorRankLabelValues.map[json["senator_rank_label"]]!,
125- startdate: DateTime.parse(json["startdate"]),
125+ startdate: _parseDateTime(json["startdate"]),
126126 state: json["state"],
127127 title: titleValues.map[json["title"]]!,
128128 titleLong: roleTypeLabelValues.map[json["title_long"]]!,
@@ -243,7 +243,7 @@ class Person {
243243
244244 factory Person.fromJson(Map<String, dynamic> json) => Person(
245245 bioguideid: json["bioguideid"],
246- birthday: DateTime.parse(json["birthday"]),
246+ birthday: _parseDateTime(json["birthday"]),
247247 cspanid: json["cspanid"],
248248 firstname: json["firstname"],
249249 gender: genderValues.map[json["gender"]]!,
@@ -395,3 +395,11 @@ class EnumValues<T> {
395395 return reverseMap;
396396 }
397397 }
398+
399+DateTime _parseDateTime(String value) {
400+ final date = value.substring(0, 10);
401+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
402+ throw FormatException('Invalid date-time', value);
403+ }
404+ return DateTime.parse(value.toUpperCase());
405+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -30,7 +30,7 @@ class TopLevel {
3030 });
3131
3232 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
33- birthDate: (json.containsKey("BirthDate") ? json["BirthDate"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("BirthDate") ? json["BirthDate"] : throw FormatException('Missing required property'))),
33+ birthDate: (json.containsKey("BirthDate") ? json["BirthDate"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("BirthDate") ? json["BirthDate"] : throw FormatException('Missing required property'))),
3434 birthDateIsProtected: json["BirthDateIsProtected"],
3535 genderTypeId: json["GenderTypeID"],
3636 notes: json["Notes"],
@@ -51,3 +51,11 @@ class TopLevel {
5151 "PreferredName": preferredName,
5252 };
5353 }
54+
55+DateTime _parseDateTime(String value) {
56+ final date = value.substring(0, 10);
57+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
58+ throw FormatException('Invalid date-time', value);
59+ }
60+ return DateTime.parse(value.toUpperCase());
61+}
Test case

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

1 generated file · +14 −6
Mdartdefault / TopLevel.dart+14 −6
@@ -131,11 +131,11 @@ class Result {
131131 costAbsolute: (json.containsKey("cost_absolute") ? json["cost_absolute"] : throw FormatException('Missing required property')),
132132 costMax: (json.containsKey("cost_max") ? json["cost_max"] : throw FormatException('Missing required property')),
133133 costMin: (json.containsKey("cost_min") ? json["cost_min"] : throw FormatException('Missing required property')),
134- createdAt: DateTime.parse(json["created_at"]),
134+ createdAt: _parseDateTime(json["created_at"]),
135135 customIncomes: List<CustomIncome>.from(json["customIncomes"].map((x) => CustomIncome.fromJson(x))),
136136 directRepCostsMax: (json.containsKey("direct_rep_costs_max") ? json["direct_rep_costs_max"] : throw FormatException('Missing required property')),
137137 directRepCostsMin: (json.containsKey("direct_rep_costs_min") ? json["direct_rep_costs_min"] : throw FormatException('Missing required property')),
138- endDate: DateTime.parse(json["end_date"]),
138+ endDate: _parseDateTime(json["end_date"]),
139139 eurSourcesGrants: json["eur_sources_grants"],
140140 eurSourcesGrantsSrc: (json.containsKey("eur_sources_grants_src") ? json["eur_sources_grants_src"] : throw FormatException('Missing required property')),
141141 eurSourcesProcurement: json["eur_sources_procurement"],
@@ -151,14 +151,14 @@ class Result {
151151 publicFinancingNational: (json.containsKey("public_financing_national") ? json["public_financing_national"] : throw FormatException('Missing required property')),
152152 publicFinancingTotal: (json.containsKey("public_financing_total") ? json["public_financing_total"] : throw FormatException('Missing required property')),
153153 representative: json["representative"],
154- startDate: DateTime.parse(json["start_date"]),
154+ startDate: _parseDateTime(json["start_date"]),
155155 status: statusValues.map[json["status"]]!,
156156 totalBudget: (json.containsKey("total_budget") ? json["total_budget"] : throw FormatException('Missing required property')),
157157 turnoverAbsolute: (json.containsKey("turnover_absolute") ? json["turnover_absolute"] : throw FormatException('Missing required property')),
158158 turnoverMax: (json.containsKey("turnover_max") ? json["turnover_max"] : throw FormatException('Missing required property')),
159159 turnoverMin: (json.containsKey("turnover_min") ? json["turnover_min"] : throw FormatException('Missing required property')),
160160 type: resultTypeValues.map[json["type"]]!,
161- updatedAt: DateTime.parse(json["updated_at"]),
161+ updatedAt: _parseDateTime(json["updated_at"]),
162162 uri: json["uri"],
163163 );
164164
@@ -221,12 +221,12 @@ class CustomIncome {
221221
222222 factory CustomIncome.fromJson(Map<String, dynamic> json) => CustomIncome(
223223 amount: json["amount"],
224- createdAt: DateTime.parse(json["created_at"]),
224+ createdAt: _parseDateTime(json["created_at"]),
225225 id: json["id"],
226226 name: json["name"],
227227 status: statusValues.map[json["status"]]!,
228228 type: customIncomeTypeValues.map[json["type"]]!,
229- updatedAt: DateTime.parse(json["updated_at"]),
229+ updatedAt: _parseDateTime(json["updated_at"]),
230230 uri: json["uri"],
231231 );
232232
@@ -285,3 +285,11 @@ class EnumValues<T> {
285285 return reverseMap;
286286 }
287287 }
288+
289+DateTime _parseDateTime(String value) {
290+ final date = value.substring(0, 10);
291+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
292+ throw FormatException('Invalid date-time', value);
293+ }
294+ return DateTime.parse(value.toUpperCase());
295+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -435,3 +435,11 @@ class EnumValues<T> {
435435 return reverseMap;
436436 }
437437 }
438+
439+DateTime _parseDateTime(String value) {
440+ final date = value.substring(0, 10);
441+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
442+ throw FormatException('Invalid date-time', value);
443+ }
444+ return DateTime.parse(value.toUpperCase());
445+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -415,3 +415,11 @@ class Wind {
415415 "speed": speed,
416416 };
417417 }
418+
419+DateTime _parseDateTime(String value) {
420+ final date = value.substring(0, 10);
421+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
422+ throw FormatException('Invalid date-time', value);
423+ }
424+ return DateTime.parse(value.toUpperCase());
425+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

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

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -76,12 +76,12 @@ class Result {
7676 });
7777
7878 factory Result.fromJson(Map<String, dynamic> json) => Result(
79- createdAt: DateTime.parse(json["created_at"]),
79+ createdAt: _parseDateTime(json["created_at"]),
8080 id: json["id"],
8181 personId: json["person_id"],
8282 representativeId: json["representative_id"],
8383 status: statusValues.map[json["status"]]!,
84- updatedAt: DateTime.parse(json["updated_at"]),
84+ updatedAt: _parseDateTime(json["updated_at"]),
8585 );
8686
8787 Map<String, dynamic> toJson() => {
@@ -115,3 +115,11 @@ class EnumValues<T> {
115115 return reverseMap;
116116 }
117117 }
118+
119+DateTime _parseDateTime(String value) {
120+ final date = value.substring(0, 10);
121+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
122+ throw FormatException('Invalid date-time', value);
123+ }
124+ return DateTime.parse(value.toUpperCase());
125+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -22,7 +22,7 @@ class TopLevel {
2222 });
2323
2424 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
25- date: DateTime.parse(json["Date"]),
25+ date: _parseDateTime(json["Date"]),
2626 id: json["ID"],
2727 sponsor: json["Sponsor"],
2828 title: json["Title"],
@@ -35,3 +35,11 @@ class TopLevel {
3535 "Title": title,
3636 };
3737 }
38+
39+DateTime _parseDateTime(String value) {
40+ final date = value.substring(0, 10);
41+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
42+ throw FormatException('Invalid date-time', value);
43+ }
44+ return DateTime.parse(value.toUpperCase());
45+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

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

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -45,7 +45,7 @@ class TopLevel {
4545 mkmId: json["mkm_id"],
4646 mkmName: json["mkm_name"],
4747 name: json["name"],
48- releaseDate: DateTime.parse(json["releaseDate"]),
48+ releaseDate: _parseDateTime(json["releaseDate"]),
4949 type: json["type"],
5050 );
5151
@@ -284,7 +284,7 @@ class Ruling {
284284 });
285285
286286 factory Ruling.fromJson(Map<String, dynamic> json) => Ruling(
287- date: DateTime.parse(json["date"]),
287+ date: _parseDateTime(json["date"]),
288288 text: json["text"],
289289 );
290290
@@ -323,3 +323,11 @@ class EnumValues<T> {
323323 return reverseMap;
324324 }
325325 }
326+
327+DateTime _parseDateTime(String value) {
328+ final date = value.substring(0, 10);
329+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
330+ throw FormatException('Invalid date-time', value);
331+ }
332+ return DateTime.parse(value.toUpperCase());
333+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -439,3 +439,11 @@ class EnumValues<T> {
439439 return reverseMap;
440440 }
441441 }
442+
443+DateTime _parseDateTime(String value) {
444+ final date = value.substring(0, 10);
445+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
446+ throw FormatException('Invalid date-time', value);
447+ }
448+ return DateTime.parse(value.toUpperCase());
449+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

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

1 generated file · +12 −4
Mdartdefault / TopLevel.dart+12 −4
@@ -199,7 +199,7 @@ class Result {
199199 beOfficeTown: json["be_office_town"],
200200 codeOfConduct: json["code_of_conduct"],
201201 contactCountry: json["contact_country"],
202- createdAt: DateTime.parse(json["created_at"]),
202+ createdAt: _parseDateTime(json["created_at"]),
203203 entity: json["entity"],
204204 goals: json["goals"],
205205 head: json["head"],
@@ -214,7 +214,7 @@ class Result {
214214 id: json["id"],
215215 identificationCode: json["identification_code"],
216216 infoMembers: json["info_members"],
217- lastUpdateDate: DateTime.parse(json["last_update_date"]),
217+ lastUpdateDate: _parseDateTime(json["last_update_date"]),
218218 legal: json["legal"],
219219 legalStatus: json["legal_status"],
220220 mainCategory: json["main_category"],
@@ -230,12 +230,12 @@ class Result {
230230 networking: (json.containsKey("networking") ? json["networking"] : throw FormatException('Missing required property')),
231231 numberOfNaturalPersons: (json.containsKey("number_of_natural_persons") ? json["number_of_natural_persons"] : throw FormatException('Missing required property')),
232232 otherCodeOfConduct: (json.containsKey("other_code_of_conduct") ? json["other_code_of_conduct"] : throw FormatException('Missing required property')),
233- registrationDate: DateTime.parse(json["registration_date"]),
233+ registrationDate: _parseDateTime(json["registration_date"]),
234234 status: statusValues.map[json["status"]]!,
235235 structureMembers: json["structure_members"],
236236 subCategory: json["sub_category"],
237237 subCategoryTitle: json["sub_category_title"],
238- updatedAt: DateTime.parse(json["updated_at"]),
238+ updatedAt: _parseDateTime(json["updated_at"]),
239239 uri: json["uri"],
240240 webSiteUrl: (json.containsKey("web_site_url") ? json["web_site_url"] : throw FormatException('Missing required property')),
241241 );
@@ -323,3 +323,11 @@ class EnumValues<T> {
323323 return reverseMap;
324324 }
325325 }
326+
327+DateTime _parseDateTime(String value) {
328+ final date = value.substring(0, 10);
329+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
330+ throw FormatException('Invalid date-time', value);
331+ }
332+ return DateTime.parse(value.toUpperCase());
333+}
Test case

test/inputs/json/misc/75912.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

test/inputs/json/misc/77392.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -35,7 +35,7 @@ class TopLevel {
3535
3636 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
3737 designation: json["designation"],
38- discoveryDate: DateTime.parse(json["discovery_date"]),
38+ discoveryDate: _parseDateTime(json["discovery_date"]),
3939 hMag: json["h_mag"],
4040 iDeg: json["i_deg"],
4141 moidAu: json["moid_au"],
@@ -107,3 +107,11 @@ class EnumValues<T> {
107107 return reverseMap;
108108 }
109109 }
110+
111+DateTime _parseDateTime(String value) {
112+ final date = value.substring(0, 10);
113+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
114+ throw FormatException('Invalid date-time', value);
115+ }
116+ return DateTime.parse(value.toUpperCase());
117+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

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

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -49,7 +49,7 @@ class TopLevel {
4949 comments: json["comments"],
5050 commentsUrl: json["comments_url"],
5151 commitsUrl: json["commits_url"],
52- createdAt: DateTime.parse(json["created_at"]),
52+ createdAt: _parseDateTime(json["created_at"]),
5353 description: (json.containsKey("description") ? json["description"] : throw FormatException('Missing required property')),
5454 files: Map.from(json["files"]).map((k, v) => MapEntry<String, FileValue>(k, FileValue.fromJson(v))),
5555 forksUrl: json["forks_url"],
@@ -59,7 +59,7 @@ class TopLevel {
5959 id: json["id"],
6060 public: json["public"],
6161 truncated: json["truncated"],
62- updatedAt: DateTime.parse(json["updated_at"]),
62+ updatedAt: _parseDateTime(json["updated_at"]),
6363 url: json["url"],
6464 user: (json.containsKey("user") ? json["user"] : throw FormatException('Missing required property')),
6565 );
@@ -143,3 +143,11 @@ class EnumValues<T> {
143143 return reverseMap;
144144 }
145145 }
146+
147+DateTime _parseDateTime(String value) {
148+ final date = value.substring(0, 10);
149+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
150+ throw FormatException('Invalid date-time', value);
151+ }
152+ return DateTime.parse(value.toUpperCase());
153+}
Test case

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

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -78,12 +78,12 @@ class Result {
7878 });
7979
8080 factory Result.fromJson(Map<String, dynamic> json) => Result(
81- createdAt: DateTime.parse(json["created_at"]),
81+ createdAt: _parseDateTime(json["created_at"]),
8282 id: json["id"],
8383 items: json["items"],
8484 name: json["name"],
8585 parent: (json.containsKey("parent") ? json["parent"] : throw FormatException('Missing required property')),
86- updatedAt: DateTime.parse(json["updated_at"]),
86+ updatedAt: _parseDateTime(json["updated_at"]),
8787 uri: json["uri"],
8888 );
8989
@@ -97,3 +97,11 @@ class Result {
9797 "uri": uri,
9898 };
9999 }
100+
101+DateTime _parseDateTime(String value) {
102+ final date = value.substring(0, 10);
103+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
104+ throw FormatException('Invalid date-time', value);
105+ }
106+ return DateTime.parse(value.toUpperCase());
107+}
Test case

test/inputs/json/misc/88130.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -415,3 +415,11 @@ class Wind {
415415 "speed": speed,
416416 };
417417 }
418+
419+DateTime _parseDateTime(String value) {
420+ final date = value.substring(0, 10);
421+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
422+ throw FormatException('Invalid date-time', value);
423+ }
424+ return DateTime.parse(value.toUpperCase());
425+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -415,3 +415,11 @@ class Wind {
415415 "speed": speed,
416416 };
417417 }
418+
419+DateTime _parseDateTime(String value) {
420+ final date = value.substring(0, 10);
421+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
422+ throw FormatException('Invalid date-time', value);
423+ }
424+ return DateTime.parse(value.toUpperCase());
425+}
Test case

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

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -86,7 +86,7 @@ class Result {
8686 });
8787
8888 factory Result.fromJson(Map<String, dynamic> json) => Result(
89- createdAt: DateTime.parse(json["created_at"]),
89+ createdAt: _parseDateTime(json["created_at"]),
9090 entity: json["entity"],
9191 firstName: json["first_name"],
9292 id: json["id"],
@@ -95,7 +95,7 @@ class Result {
9595 position: (json.containsKey("position") ? json["position"] : throw FormatException('Missing required property')),
9696 status: statusValues.map[json["status"]]!,
9797 title: (json.containsKey("title") ? json["title"] : throw FormatException('Missing required property')) == null ? null : titleValues.map[(json.containsKey("title") ? json["title"] : throw FormatException('Missing required property'))]!,
98- updatedAt: DateTime.parse(json["updated_at"]),
98+ updatedAt: _parseDateTime(json["updated_at"]),
9999 uri: json["uri"],
100100 );
101101
@@ -145,3 +145,11 @@ class EnumValues<T> {
145145 return reverseMap;
146146 }
147147 }
148+
149+DateTime _parseDateTime(String value) {
150+ final date = value.substring(0, 10);
151+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
152+ throw FormatException('Invalid date-time', value);
153+ }
154+ return DateTime.parse(value.toUpperCase());
155+}
Test case

test/inputs/json/misc/a0496.json

1 generated file · +11 −3
Mdartdefault / TopLevel.dart+11 −3
@@ -55,15 +55,15 @@ class TopLevel {
5555 displayUrl: json["display_url"],
5656 errors: Errors.fromJson(json["errors"]),
5757 frequency: json["frequency"],
58- fromDate: DateTime.parse(json["from_date"]),
58+ fromDate: _parseDateTime(json["from_date"]),
5959 id: json["id"],
6060 name: json["name"],
6161 premium: json["premium"],
6262 sourceCode: json["source_code"],
6363 sourceName: json["source_name"],
64- toDate: DateTime.parse(json["to_date"]),
64+ toDate: _parseDateTime(json["to_date"]),
6565 type: json["type"],
66- updatedAt: DateTime.parse(json["updated_at"]),
66+ updatedAt: _parseDateTime(json["updated_at"]),
6767 urlizeName: json["urlize_name"],
6868 );
6969
@@ -97,3 +97,11 @@ class Errors {
9797 Map<String, dynamic> toJson() => {
9898 };
9999 }
100+
101+DateTime _parseDateTime(String value) {
102+ final date = value.substring(0, 10);
103+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
104+ throw FormatException('Invalid date-time', value);
105+ }
106+ return DateTime.parse(value.toUpperCase());
107+}
Test case

test/inputs/json/misc/a1eca.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -415,3 +415,11 @@ class Wind {
415415 "speed": speed,
416416 };
417417 }
418+
419+DateTime _parseDateTime(String value) {
420+ final date = value.substring(0, 10);
421+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
422+ throw FormatException('Invalid date-time', value);
423+ }
424+ return DateTime.parse(value.toUpperCase());
425+}
Test case

test/inputs/json/misc/a9691.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

test/inputs/json/misc/abb4b.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

test/inputs/json/misc/ac944.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

test/inputs/json/misc/b4865.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -49,7 +49,7 @@ class TopLevel {
4949 recclass: json["recclass"],
5050 reclat: json["reclat"],
5151 reclong: json["reclong"],
52- year: json["year"] == null ? null : DateTime.parse(json["year"]),
52+ year: json["year"] == null ? null : _parseDateTime(json["year"]),
5353 );
5454
5555 Map<String, dynamic> toJson() => {
@@ -125,3 +125,11 @@ class EnumValues<T> {
125125 return reverseMap;
126126 }
127127 }
128+
129+DateTime _parseDateTime(String value) {
130+ final date = value.substring(0, 10);
131+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
132+ throw FormatException('Invalid date-time', value);
133+ }
134+ return DateTime.parse(value.toUpperCase());
135+}
Test case

test/inputs/json/misc/b6f2c.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

test/inputs/json/misc/bb1ec.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

test/inputs/json/misc/cd463.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

test/inputs/json/misc/cf0d8.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -415,3 +415,11 @@ class Wind {
415415 "speed": speed,
416416 };
417417 }
418+
419+DateTime _parseDateTime(String value) {
420+ final date = value.substring(0, 10);
421+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
422+ throw FormatException('Invalid date-time', value);
423+ }
424+ return DateTime.parse(value.toUpperCase());
425+}
Test case

test/inputs/json/misc/cfbce.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -21,7 +21,7 @@ class TopLevel {
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
2323 base: json["base"],
24- date: DateTime.parse(json["date"]),
24+ date: _parseDateTime(json["date"]),
2525 rates: Map.from(json["rates"]).map((k, v) => MapEntry<String, double>(k, v?.toDouble())),
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "rates": Map.from(rates).map((k, v) => MapEntry<String, dynamic>(k, v)),
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

test/inputs/json/misc/d0908.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -34,7 +34,7 @@ class TotalPopulation {
3434 });
3535
3636 factory TotalPopulation.fromJson(Map<String, dynamic> json) => TotalPopulation(
37- date: DateTime.parse(json["date"]),
37+ date: _parseDateTime(json["date"]),
3838 population: json["population"],
3939 );
4040
@@ -43,3 +43,11 @@ class TotalPopulation {
4343 "population": population,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
Test case

test/inputs/json/misc/d23d5.json

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -77,10 +77,10 @@ class Result {
7777
7878 factory Result.fromJson(Map<String, dynamic> json) => Result(
7979 acronym: (json.containsKey("acronym") ? json["acronym"] : throw FormatException('Missing required property')),
80- createdAt: DateTime.parse(json["created_at"]),
80+ createdAt: _parseDateTime(json["created_at"]),
8181 id: json["id"],
8282 name: json["name"],
83- updatedAt: DateTime.parse(json["updated_at"]),
83+ updatedAt: _parseDateTime(json["updated_at"]),
8484 uri: json["uri"],
8585 );
8686
@@ -93,3 +93,11 @@ class Result {
9393 "uri": uri,
9494 };
9595 }
96+
97+DateTime _parseDateTime(String value) {
98+ final date = value.substring(0, 10);
99+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
100+ throw FormatException('Invalid date-time', value);
101+ }
102+ return DateTime.parse(value.toUpperCase());
103+}
Test case

test/inputs/json/misc/dbfb3.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -437,3 +437,11 @@ class EnumValues<T> {
437437 return reverseMap;
438438 }
439439 }
440+
441+DateTime _parseDateTime(String value) {
442+ final date = value.substring(0, 10);
443+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
444+ throw FormatException('Invalid date-time', value);
445+ }
446+ return DateTime.parse(value.toUpperCase());
447+}
Test case

test/inputs/json/misc/dc44f.json

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -45,7 +45,7 @@ class TopLevel {
4545 mkmId: json["mkm_id"],
4646 mkmName: json["mkm_name"],
4747 name: json["name"],
48- releaseDate: DateTime.parse(json["releaseDate"]),
48+ releaseDate: _parseDateTime(json["releaseDate"]),
4949 type: json["type"],
5050 );
5151
@@ -358,7 +358,7 @@ class Ruling {
358358 });
359359
360360 factory Ruling.fromJson(Map<String, dynamic> json) => Ruling(
361- date: DateTime.parse(json["date"]),
361+ date: _parseDateTime(json["date"]),
362362 text: json["text"],
363363 );
364364
@@ -405,3 +405,11 @@ class EnumValues<T> {
405405 return reverseMap;
406406 }
407407 }
408+
409+DateTime _parseDateTime(String value) {
410+ final date = value.substring(0, 10);
411+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
412+ throw FormatException('Invalid date-time', value);
413+ }
414+ return DateTime.parse(value.toUpperCase());
415+}
Test case

test/inputs/json/misc/dd1ce.json

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -45,7 +45,7 @@ class TopLevel {
4545 mkmId: json["mkm_id"],
4646 mkmName: json["mkm_name"],
4747 name: json["name"],
48- releaseDate: DateTime.parse(json["releaseDate"]),
48+ releaseDate: _parseDateTime(json["releaseDate"]),
4949 type: json["type"],
5050 );
5151
@@ -358,7 +358,7 @@ class Ruling {
358358 });
359359
360360 factory Ruling.fromJson(Map<String, dynamic> json) => Ruling(
361- date: DateTime.parse(json["date"]),
361+ date: _parseDateTime(json["date"]),
362362 text: json["text"],
363363 );
364364
@@ -405,3 +405,11 @@ class EnumValues<T> {
405405 return reverseMap;
406406 }
407407 }
408+
409+DateTime _parseDateTime(String value) {
410+ final date = value.substring(0, 10);
411+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
412+ throw FormatException('Invalid date-time', value);
413+ }
414+ return DateTime.parse(value.toUpperCase());
415+}
Test case

test/inputs/json/misc/df957.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -415,3 +415,11 @@ class Wind {
415415 "speed": speed,
416416 };
417417 }
418+
419+DateTime _parseDateTime(String value) {
420+ final date = value.substring(0, 10);
421+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
422+ throw FormatException('Invalid date-time', value);
423+ }
424+ return DateTime.parse(value.toUpperCase());
425+}
Test case

test/inputs/json/misc/e2915.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Query {
3939
4040 factory Query.fromJson(Map<String, dynamic> json) => Query(
4141 count: json["count"],
42- created: DateTime.parse(json["created"]),
42+ created: _parseDateTime(json["created"]),
4343 lang: json["lang"],
4444 results: Results.fromJson(json["results"]),
4545 );
@@ -435,3 +435,11 @@ class EnumValues<T> {
435435 return reverseMap;
436436 }
437437 }
438+
439+DateTime _parseDateTime(String value) {
440+ final date = value.substring(0, 10);
441+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
442+ throw FormatException('Invalid date-time', value);
443+ }
444+ return DateTime.parse(value.toUpperCase());
445+}
Test case

test/inputs/json/priority/bug2590.json

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -36,8 +36,8 @@ class Invoice {
3636 });
3737
3838 factory Invoice.fromJson(Map<String, dynamic> json) => Invoice(
39- createdAt: (json.containsKey("createdAt") ? json["createdAt"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("createdAt") ? json["createdAt"] : throw FormatException('Missing required property'))),
40- dueDate: (json.containsKey("dueDate") ? json["dueDate"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("dueDate") ? json["dueDate"] : throw FormatException('Missing required property'))),
39+ createdAt: (json.containsKey("createdAt") ? json["createdAt"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("createdAt") ? json["createdAt"] : throw FormatException('Missing required property'))),
40+ dueDate: (json.containsKey("dueDate") ? json["dueDate"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("dueDate") ? json["dueDate"] : throw FormatException('Missing required property'))),
4141 name: json["name"],
4242 );
4343
@@ -47,3 +47,11 @@ class Invoice {
4747 "name": name,
4848 };
4949 }
50+
51+DateTime _parseDateTime(String value) {
52+ final date = value.substring(0, 10);
53+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
54+ throw FormatException('Invalid date-time', value);
55+ }
56+ return DateTime.parse(value.toUpperCase());
57+}
Test case

test/inputs/json/priority/bug2663.json

1 generated file · +10 −2
Mdartdefault / TopLevel.dart+10 −2
@@ -20,8 +20,8 @@ class TopLevel {
2020 });
2121
2222 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
23- birthday: DateTime.parse(json["birthday"]),
24- lastSeen: DateTime.parse(json["lastSeen"]),
23+ birthday: _parseDateTime(json["birthday"]),
24+ lastSeen: _parseDateTime(json["lastSeen"]),
2525 name: json["name"],
2626 );
2727
@@ -31,3 +31,11 @@ class TopLevel {
3131 "name": name,
3232 };
3333 }
34+
35+DateTime _parseDateTime(String value) {
36+ final date = value.substring(0, 10);
37+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
38+ throw FormatException('Invalid date-time', value);
39+ }
40+ return DateTime.parse(value.toUpperCase());
41+}
Test case

test/inputs/json/priority/keywords.json

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -1720,7 +1720,7 @@ class DateTimeClass {
17201720 });
17211721
17221722 factory DateTimeClass.fromJson(Map<String, dynamic> json) => DateTimeClass(
1723- dateTime: DateTime.parse(json["DateTime"]),
1723+ dateTime: _parseDateTime(json["DateTime"]),
17241724 );
17251725
17261726 Map<String, dynamic> toJson() => {
@@ -7305,3 +7305,11 @@ class EnumValues<T> {
73057305 return reverseMap;
73067306 }
73077307 }
7308+
7309+DateTime _parseDateTime(String value) {
7310+ final date = value.substring(0, 10);
7311+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
7312+ throw FormatException('Invalid date-time', value);
7313+ }
7314+ return DateTime.parse(value.toUpperCase());
7315+}
Test case

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

1 generated file · +24 −16
Mdartdefault / TopLevel.dart+24 −16
@@ -31,7 +31,7 @@ class TopLevel {
3131
3232 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
3333 actor: Actor.fromJson(json["actor"]),
34- createdAt: DateTime.parse(json["created_at"]),
34+ createdAt: _parseDateTime(json["created_at"]),
3535 id: json["id"],
3636 org: json["org"] == null ? null : Actor.fromJson(json["org"]),
3737 payload: Payload.fromJson(json["payload"]),
@@ -187,11 +187,11 @@ class Comment {
187187
188188 factory Comment.fromJson(Map<String, dynamic> json) => Comment(
189189 body: json["body"],
190- createdAt: DateTime.parse(json["created_at"]),
190+ createdAt: _parseDateTime(json["created_at"]),
191191 htmlUrl: json["html_url"],
192192 id: json["id"],
193193 issueUrl: json["issue_url"],
194- updatedAt: DateTime.parse(json["updated_at"]),
194+ updatedAt: _parseDateTime(json["updated_at"]),
195195 url: json["url"],
196196 user: User.fromJson(json["user"]),
197197 );
@@ -403,10 +403,10 @@ class Issue {
403403 assignee: (json.containsKey("assignee") ? json["assignee"] : throw FormatException('Missing required property')),
404404 assignees: List<dynamic>.from(json["assignees"].map((x) => x)),
405405 body: json["body"],
406- closedAt: (json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property'))),
406+ closedAt: (json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property'))),
407407 comments: json["comments"],
408408 commentsUrl: json["comments_url"],
409- createdAt: DateTime.parse(json["created_at"]),
409+ createdAt: _parseDateTime(json["created_at"]),
410410 eventsUrl: json["events_url"],
411411 htmlUrl: json["html_url"],
412412 id: json["id"],
@@ -419,7 +419,7 @@ class Issue {
419419 repositoryUrl: json["repository_url"],
420420 state: json["state"],
421421 title: json["title"],
422- updatedAt: DateTime.parse(json["updated_at"]),
422+ updatedAt: _parseDateTime(json["updated_at"]),
423423 url: json["url"],
424424 user: User.fromJson(json["user"]),
425425 );
@@ -520,10 +520,10 @@ class Milestone {
520520 factory Milestone.fromJson(Map<String, dynamic> json) => Milestone(
521521 closedAt: (json.containsKey("closed_at") ? json["closed_at"] : throw FormatException('Missing required property')),
522522 closedIssues: json["closed_issues"],
523- createdAt: DateTime.parse(json["created_at"]),
523+ createdAt: _parseDateTime(json["created_at"]),
524524 creator: User.fromJson(json["creator"]),
525525 description: json["description"],
526- dueOn: (json.containsKey("due_on") ? json["due_on"] : throw FormatException('Missing required property')) == null ? null : DateTime.parse((json.containsKey("due_on") ? json["due_on"] : throw FormatException('Missing required property'))),
526+ dueOn: (json.containsKey("due_on") ? json["due_on"] : throw FormatException('Missing required property')) == null ? null : _parseDateTime((json.containsKey("due_on") ? json["due_on"] : throw FormatException('Missing required property'))),
527527 htmlUrl: json["html_url"],
528528 id: json["id"],
529529 labelsUrl: json["labels_url"],
@@ -531,7 +531,7 @@ class Milestone {
531531 openIssues: json["open_issues"],
532532 state: json["state"],
533533 title: json["title"],
534- updatedAt: DateTime.parse(json["updated_at"]),
534+ updatedAt: _parseDateTime(json["updated_at"]),
535535 url: json["url"],
536536 );
537537
@@ -676,12 +676,12 @@ class PayloadPullRequest {
676676 base: Base.fromJson(json["base"]),
677677 body: json["body"],
678678 changedFiles: json["changed_files"],
679- closedAt: DateTime.parse(json["closed_at"]),
679+ closedAt: _parseDateTime(json["closed_at"]),
680680 comments: json["comments"],
681681 commentsUrl: json["comments_url"],
682682 commits: json["commits"],
683683 commitsUrl: json["commits_url"],
684- createdAt: DateTime.parse(json["created_at"]),
684+ createdAt: _parseDateTime(json["created_at"]),
685685 deletions: json["deletions"],
686686 diffUrl: json["diff_url"],
687687 head: Base.fromJson(json["head"]),
@@ -695,7 +695,7 @@ class PayloadPullRequest {
695695 mergeable: (json.containsKey("mergeable") ? json["mergeable"] : throw FormatException('Missing required property')),
696696 mergeableState: json["mergeable_state"],
697697 merged: json["merged"],
698- mergedAt: DateTime.parse(json["merged_at"]),
698+ mergedAt: _parseDateTime(json["merged_at"]),
699699 mergedBy: User.fromJson(json["merged_by"]),
700700 milestone: (json.containsKey("milestone") ? json["milestone"] : throw FormatException('Missing required property')),
701701 number: json["number"],
@@ -708,7 +708,7 @@ class PayloadPullRequest {
708708 state: json["state"],
709709 statusesUrl: json["statuses_url"],
710710 title: json["title"],
711- updatedAt: DateTime.parse(json["updated_at"]),
711+ updatedAt: _parseDateTime(json["updated_at"]),
712712 url: json["url"],
713713 user: User.fromJson(json["user"]),
714714 );
@@ -945,7 +945,7 @@ class BaseRepo {
945945 compareUrl: json["compare_url"],
946946 contentsUrl: json["contents_url"],
947947 contributorsUrl: json["contributors_url"],
948- createdAt: DateTime.parse(json["created_at"]),
948+ createdAt: _parseDateTime(json["created_at"]),
949949 defaultBranch: json["default_branch"],
950950 deploymentsUrl: json["deployments_url"],
951951 description: json["description"],
@@ -986,7 +986,7 @@ class BaseRepo {
986986 owner: User.fromJson(json["owner"]),
987987 private: json["private"],
988988 pullsUrl: json["pulls_url"],
989- pushedAt: DateTime.parse(json["pushed_at"]),
989+ pushedAt: _parseDateTime(json["pushed_at"]),
990990 releasesUrl: json["releases_url"],
991991 size: json["size"],
992992 sshUrl: json["ssh_url"],
@@ -999,7 +999,7 @@ class BaseRepo {
999999 tagsUrl: json["tags_url"],
10001000 teamsUrl: json["teams_url"],
10011001 treesUrl: json["trees_url"],
1002- updatedAt: DateTime.parse(json["updated_at"]),
1002+ updatedAt: _parseDateTime(json["updated_at"]),
10031003 url: json["url"],
10041004 watchers: json["watchers"],
10051005 watchersCount: json["watchers_count"],
@@ -1173,3 +1173,11 @@ class EnumValues<T> {
11731173 return reverseMap;
11741174 }
11751175 }
1176+
1177+DateTime _parseDateTime(String value) {
1178+ final date = value.substring(0, 10);
1179+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
1180+ throw FormatException('Invalid date-time', value);
1181+ }
1182+ return DateTime.parse(value.toUpperCase());
1183+}
Test case

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

1 generated file · +9 −1
Mdartdefault / TopLevel.dart+9 −1
@@ -39,7 +39,7 @@ class Item {
3939
4040 factory Item.fromJson(Map<String, dynamic> json) => Item(
4141 address: json["address"] == null ? null : Address.fromJson(json["address"]),
42- createdAt: json["created_at"] == null ? null : DateTime.parse(json["created_at"]),
42+ createdAt: json["created_at"] == null ? null : _parseDateTime(json["created_at"]),
4343 name: json["name"],
4444 sex: (json.containsKey("sex") ? json["sex"] : throw FormatException('Missing required property')),
4545 );
@@ -75,3 +75,11 @@ class Address {
7575 "street": street,
7676 };
7777 }
78+
79+DateTime _parseDateTime(String value) {
80+ final date = value.substring(0, 10);
81+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
82+ throw FormatException('Invalid date-time', value);
83+ }
84+ return DateTime.parse(value.toUpperCase());
85+}
Test case

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

1 generated file · +11 −3
Mdartdefault / TopLevel.dart+11 −3
@@ -107,7 +107,7 @@ class Object {
107107 current: json["current"],
108108 description: json["description"],
109109 district: (json.containsKey("district") ? json["district"] : throw FormatException('Missing required property')),
110- enddate: DateTime.parse(json["enddate"]),
110+ enddate: _parseDateTime(json["enddate"]),
111111 extra: Extra.fromJson(json["extra"]),
112112 leadershipTitle: (json.containsKey("leadership_title") ? json["leadership_title"] : throw FormatException('Missing required property')),
113113 party: partyValues.map[json["party"]]!,
@@ -119,7 +119,7 @@ class Object {
119119 senatorClassLabel: senatorClassLabelValues.map[json["senator_class_label"]]!,
120120 senatorRank: senatorRankValues.map[json["senator_rank"]]!,
121121 senatorRankLabel: senatorRankLabelValues.map[json["senator_rank_label"]]!,
122- startdate: DateTime.parse(json["startdate"]),
122+ startdate: _parseDateTime(json["startdate"]),
123123 state: json["state"],
124124 title: titleValues.map[json["title"]]!,
125125 titleLong: roleTypeLabelValues.map[json["title_long"]]!,
@@ -237,7 +237,7 @@ class Person {
237237
238238 factory Person.fromJson(Map<String, dynamic> json) => Person(
239239 bioguideid: json["bioguideid"],
240- birthday: DateTime.parse(json["birthday"]),
240+ birthday: _parseDateTime(json["birthday"]),
241241 cspanid: json["cspanid"],
242242 firstname: json["firstname"],
243243 gender: genderValues.map[json["gender"]]!,
@@ -387,3 +387,11 @@ class EnumValues<T> {
387387 return reverseMap;
388388 }
389389 }
390+
391+DateTime _parseDateTime(String value) {
392+ final date = value.substring(0, 10);
393+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
394+ throw FormatException('Invalid date-time', value);
395+ }
396+ return DateTime.parse(value.toUpperCase());
397+}
Test case

test/inputs/schema/date-time.schema

1 generated file · +10 −2
Mschema-dartdefault / TopLevel.dart+10 −2
@@ -31,8 +31,8 @@ class TopLevel {
3131
3232 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
3333 complexUnionArray: List<dynamic>.from(json["complex-union-array"].map((x) => x)),
34- date: DateTime.parse(json["date"]),
35- dateTime: DateTime.parse(json["date-time"]),
34+ date: _parseDateTime(json["date"]),
35+ dateTime: _parseDateTime(json["date-time"]),
3636 localDateClass: json["local-date-class"] == null ? null : LocalDate.fromJson(json["local-date-class"]),
3737 offsetDateTimeClass: json["offset-date-time-class"] == null ? null : OffsetDateTime.fromJson(json["offset-date-time-class"]),
3838 offsetTimeClass: json["offset-time-class"] == null ? null : OffsetTime.fromJson(json["offset-time-class"]),
@@ -103,3 +103,11 @@ class EnumValues<T> {
103103 return reverseMap;
104104 }
105105 }
106+
107+DateTime _parseDateTime(String value) {
108+ final date = value.substring(0, 10);
109+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
110+ throw FormatException('Invalid date-time', value);
111+ }
112+ return DateTime.parse(value.toUpperCase());
113+}
Test case

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

1 generated file · +12 −4
Mschema-dartdefault / TopLevel.dart+12 −4
@@ -26,11 +26,11 @@ class TopLevel {
2626 });
2727
2828 factory TopLevel.fromJson(Map<String, dynamic> json) => TopLevel(
29- optionalDate: json["optional-date"] == null ? null : DateTime.parse(json["optional-date"]),
30- optionalDateTime: json["optional-date-time"] == null ? null : DateTime.parse(json["optional-date-time"]),
29+ optionalDate: json["optional-date"] == null ? null : _parseDateTime(json["optional-date"]),
30+ optionalDateTime: json["optional-date-time"] == null ? null : _parseDateTime(json["optional-date-time"]),
3131 optionalTime: json["optional-time"],
32- requiredDate: DateTime.parse(json["required-date"]),
33- requiredDateTime: DateTime.parse(json["required-date-time"]),
32+ requiredDate: _parseDateTime(json["required-date"]),
33+ requiredDateTime: _parseDateTime(json["required-date-time"]),
3434 requiredTime: json["required-time"],
3535 );
3636
@@ -43,3 +43,11 @@ class TopLevel {
4343 "required-time": requiredTime,
4444 };
4545 }
46+
47+DateTime _parseDateTime(String value) {
48+ final date = value.substring(0, 10);
49+ if (!DateTime.parse(date + 'T00:00:00Z').toIso8601String().startsWith(date)) {
50+ throw FormatException('Invalid date-time', value);
51+ }
52+ return DateTime.parse(value.toUpperCase());
53+}
No generated files match these filters.