Generated-output differences

quicktype output changed between the PR base and tested PR merge revisions.
← Back to the pull request
34test cases
37files differ
37modified
0new
0deleted
444changed lines
+444 −0insertions / deletions
Base 5e404d262931ff68010a28ba3e712a1d7402a721 · PR merge 47ec77270d5c62bd3d63ed65fac6df7d081156fe · Head d6c6d18855926eebd8846df32ab7aa58be847e04 · raw patch
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -182,11 +182,23 @@ extension Result {
182182
183183 // MARK: - Helper functions for creating encoders and decoders
184184
185+private func isValidDate(_ value: String) -> Bool {
186+ let formatter = DateFormatter()
187+ formatter.locale = Locale(identifier: "en_US_POSIX")
188+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
189+ formatter.dateFormat = "u-MM-dd"
190+ formatter.isLenient = false
191+ return formatter.date(from: String(value.prefix(10))) != nil
192+}
193+
185194 func newJSONDecoder() -> JSONDecoder {
186195 let decoder = JSONDecoder()
187196 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
188197 let container = try decoder.singleValueContainer()
189198 let dateStr = try container.decode(String.self).uppercased()
199+ guard isValidDate(dateStr) else {
200+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
201+ }
190202
191203 let formatter = DateFormatter()
192204 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -1238,11 +1238,23 @@ extension Array where Element == TopLevel.Element {
12381238
12391239 // MARK: - Helper functions for creating encoders and decoders
12401240
1241+private func isValidDate(_ value: String) -> Bool {
1242+ let formatter = DateFormatter()
1243+ formatter.locale = Locale(identifier: "en_US_POSIX")
1244+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
1245+ formatter.dateFormat = "u-MM-dd"
1246+ formatter.isLenient = false
1247+ return formatter.date(from: String(value.prefix(10))) != nil
1248+}
1249+
12411250 func newJSONDecoder() -> JSONDecoder {
12421251 let decoder = JSONDecoder()
12431252 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
12441253 let container = try decoder.singleValueContainer()
12451254 let dateStr = try container.decode(String.self).uppercased()
1255+ guard isValidDate(dateStr) else {
1256+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
1257+ }
12461258
12471259 let formatter = DateFormatter()
12481260 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -813,11 +813,23 @@ extension Wind {
813813
814814 // MARK: - Helper functions for creating encoders and decoders
815815
816+private func isValidDate(_ value: String) -> Bool {
817+ let formatter = DateFormatter()
818+ formatter.locale = Locale(identifier: "en_US_POSIX")
819+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
820+ formatter.dateFormat = "u-MM-dd"
821+ formatter.isLenient = false
822+ return formatter.date(from: String(value.prefix(10))) != nil
823+}
824+
816825 func newJSONDecoder() -> JSONDecoder {
817826 let decoder = JSONDecoder()
818827 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
819828 let container = try decoder.singleValueContainer()
820829 let dateStr = try container.decode(String.self).uppercased()
830+ guard isValidDate(dateStr) else {
831+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
832+ }
821833
822834 let formatter = DateFormatter()
823835 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -106,11 +106,23 @@ extension Array where Element == TopLevel.Element {
106106
107107 // MARK: - Helper functions for creating encoders and decoders
108108
109+private func isValidDate(_ value: String) -> Bool {
110+ let formatter = DateFormatter()
111+ formatter.locale = Locale(identifier: "en_US_POSIX")
112+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
113+ formatter.dateFormat = "u-MM-dd"
114+ formatter.isLenient = false
115+ return formatter.date(from: String(value.prefix(10))) != nil
116+}
117+
109118 func newJSONDecoder() -> JSONDecoder {
110119 let decoder = JSONDecoder()
111120 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
112121 let container = try decoder.singleValueContainer()
113122 let dateStr = try container.decode(String.self).uppercased()
123+ guard isValidDate(dateStr) else {
124+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
125+ }
114126
115127 let formatter = DateFormatter()
116128 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -374,11 +374,23 @@ enum ResultType: String, Codable {
374374
375375 // MARK: - Helper functions for creating encoders and decoders
376376
377+private func isValidDate(_ value: String) -> Bool {
378+ let formatter = DateFormatter()
379+ formatter.locale = Locale(identifier: "en_US_POSIX")
380+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
381+ formatter.dateFormat = "u-MM-dd"
382+ formatter.isLenient = false
383+ return formatter.date(from: String(value.prefix(10))) != nil
384+}
385+
377386 func newJSONDecoder() -> JSONDecoder {
378387 let decoder = JSONDecoder()
379388 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
380389 let container = try decoder.singleValueContainer()
381390 let dateStr = try container.decode(String.self).uppercased()
391+ guard isValidDate(dateStr) else {
392+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
393+ }
382394
383395 let formatter = DateFormatter()
384396 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -811,11 +811,23 @@ extension Wind {
811811
812812 // MARK: - Helper functions for creating encoders and decoders
813813
814+private func isValidDate(_ value: String) -> Bool {
815+ let formatter = DateFormatter()
816+ formatter.locale = Locale(identifier: "en_US_POSIX")
817+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
818+ formatter.dateFormat = "u-MM-dd"
819+ formatter.isLenient = false
820+ return formatter.date(from: String(value.prefix(10))) != nil
821+}
822+
814823 func newJSONDecoder() -> JSONDecoder {
815824 let decoder = JSONDecoder()
816825 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
817826 let container = try decoder.singleValueContainer()
818827 let dateStr = try container.decode(String.self).uppercased()
828+ guard isValidDate(dateStr) else {
829+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
830+ }
819831
820832 let formatter = DateFormatter()
821833 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -187,11 +187,23 @@ enum Status: String, Codable {
187187
188188 // MARK: - Helper functions for creating encoders and decoders
189189
190+private func isValidDate(_ value: String) -> Bool {
191+ let formatter = DateFormatter()
192+ formatter.locale = Locale(identifier: "en_US_POSIX")
193+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
194+ formatter.dateFormat = "u-MM-dd"
195+ formatter.isLenient = false
196+ return formatter.date(from: String(value.prefix(10))) != nil
197+}
198+
190199 func newJSONDecoder() -> JSONDecoder {
191200 let decoder = JSONDecoder()
192201 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
193202 let container = try decoder.singleValueContainer()
194203 let dateStr = try container.decode(String.self).uppercased()
204+ guard isValidDate(dateStr) else {
205+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
206+ }
195207
196208 let formatter = DateFormatter()
197209 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -90,11 +90,23 @@ extension Array where Element == TopLevel.Element {
9090
9191 // MARK: - Helper functions for creating encoders and decoders
9292
93+private func isValidDate(_ value: String) -> Bool {
94+ let formatter = DateFormatter()
95+ formatter.locale = Locale(identifier: "en_US_POSIX")
96+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
97+ formatter.dateFormat = "u-MM-dd"
98+ formatter.isLenient = false
99+ return formatter.date(from: String(value.prefix(10))) != nil
100+}
101+
93102 func newJSONDecoder() -> JSONDecoder {
94103 let decoder = JSONDecoder()
95104 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
96105 let container = try decoder.singleValueContainer()
97106 let dateStr = try container.decode(String.self).uppercased()
107+ guard isValidDate(dateStr) else {
108+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
109+ }
98110
99111 let formatter = DateFormatter()
100112 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -813,11 +813,23 @@ extension Wind {
813813
814814 // MARK: - Helper functions for creating encoders and decoders
815815
816+private func isValidDate(_ value: String) -> Bool {
817+ let formatter = DateFormatter()
818+ formatter.locale = Locale(identifier: "en_US_POSIX")
819+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
820+ formatter.dateFormat = "u-MM-dd"
821+ formatter.isLenient = false
822+ return formatter.date(from: String(value.prefix(10))) != nil
823+}
824+
816825 func newJSONDecoder() -> JSONDecoder {
817826 let decoder = JSONDecoder()
818827 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
819828 let container = try decoder.singleValueContainer()
820829 let dateStr = try container.decode(String.self).uppercased()
830+ guard isValidDate(dateStr) else {
831+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
832+ }
821833
822834 let formatter = DateFormatter()
823835 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -395,11 +395,23 @@ enum Status: String, Codable {
395395
396396 // MARK: - Helper functions for creating encoders and decoders
397397
398+private func isValidDate(_ value: String) -> Bool {
399+ let formatter = DateFormatter()
400+ formatter.locale = Locale(identifier: "en_US_POSIX")
401+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
402+ formatter.dateFormat = "u-MM-dd"
403+ formatter.isLenient = false
404+ return formatter.date(from: String(value.prefix(10))) != nil
405+}
406+
398407 func newJSONDecoder() -> JSONDecoder {
399408 let decoder = JSONDecoder()
400409 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
401410 let container = try decoder.singleValueContainer()
402411 let dateStr = try container.decode(String.self).uppercased()
412+ guard isValidDate(dateStr) else {
413+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
414+ }
403415
404416 let formatter = DateFormatter()
405417 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/77392.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -132,11 +132,23 @@ extension Array where Element == TopLevel.Element {
132132
133133 // MARK: - Helper functions for creating encoders and decoders
134134
135+private func isValidDate(_ value: String) -> Bool {
136+ let formatter = DateFormatter()
137+ formatter.locale = Locale(identifier: "en_US_POSIX")
138+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
139+ formatter.dateFormat = "u-MM-dd"
140+ formatter.isLenient = false
141+ return formatter.date(from: String(value.prefix(10))) != nil
142+}
143+
135144 func newJSONDecoder() -> JSONDecoder {
136145 let decoder = JSONDecoder()
137146 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
138147 let container = try decoder.singleValueContainer()
139148 let dateStr = try container.decode(String.self).uppercased()
149+ guard isValidDate(dateStr) else {
150+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
151+ }
140152
141153 let formatter = DateFormatter()
142154 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -206,11 +206,23 @@ extension Array where Element == TopLevel.Element {
206206
207207 // MARK: - Helper functions for creating encoders and decoders
208208
209+private func isValidDate(_ value: String) -> Bool {
210+ let formatter = DateFormatter()
211+ formatter.locale = Locale(identifier: "en_US_POSIX")
212+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
213+ formatter.dateFormat = "u-MM-dd"
214+ formatter.isLenient = false
215+ return formatter.date(from: String(value.prefix(10))) != nil
216+}
217+
209218 func newJSONDecoder() -> JSONDecoder {
210219 let decoder = JSONDecoder()
211220 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
212221 let container = try decoder.singleValueContainer()
213222 let dateStr = try container.decode(String.self).uppercased()
223+ guard isValidDate(dateStr) else {
224+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
225+ }
214226
215227 let formatter = DateFormatter()
216228 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -186,11 +186,23 @@ extension Result {
186186
187187 // MARK: - Helper functions for creating encoders and decoders
188188
189+private func isValidDate(_ value: String) -> Bool {
190+ let formatter = DateFormatter()
191+ formatter.locale = Locale(identifier: "en_US_POSIX")
192+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
193+ formatter.dateFormat = "u-MM-dd"
194+ formatter.isLenient = false
195+ return formatter.date(from: String(value.prefix(10))) != nil
196+}
197+
189198 func newJSONDecoder() -> JSONDecoder {
190199 let decoder = JSONDecoder()
191200 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
192201 let container = try decoder.singleValueContainer()
193202 let dateStr = try container.decode(String.self).uppercased()
203+ guard isValidDate(dateStr) else {
204+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
205+ }
194206
195207 let formatter = DateFormatter()
196208 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/88130.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -212,11 +212,23 @@ enum Title: String, Codable {
212212
213213 // MARK: - Helper functions for creating encoders and decoders
214214
215+private func isValidDate(_ value: String) -> Bool {
216+ let formatter = DateFormatter()
217+ formatter.locale = Locale(identifier: "en_US_POSIX")
218+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
219+ formatter.dateFormat = "u-MM-dd"
220+ formatter.isLenient = false
221+ return formatter.date(from: String(value.prefix(10))) != nil
222+}
223+
215224 func newJSONDecoder() -> JSONDecoder {
216225 let decoder = JSONDecoder()
217226 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
218227 let container = try decoder.singleValueContainer()
219228 let dateStr = try container.decode(String.self).uppercased()
229+ guard isValidDate(dateStr) else {
230+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
231+ }
220232
221233 let formatter = DateFormatter()
222234 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/a0496.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -193,11 +193,23 @@ extension Errors {
193193
194194 // MARK: - Helper functions for creating encoders and decoders
195195
196+private func isValidDate(_ value: String) -> Bool {
197+ let formatter = DateFormatter()
198+ formatter.locale = Locale(identifier: "en_US_POSIX")
199+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
200+ formatter.dateFormat = "u-MM-dd"
201+ formatter.isLenient = false
202+ return formatter.date(from: String(value.prefix(10))) != nil
203+}
204+
196205 func newJSONDecoder() -> JSONDecoder {
197206 let decoder = JSONDecoder()
198207 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
199208 let container = try decoder.singleValueContainer()
200209 let dateStr = try container.decode(String.self).uppercased()
210+ guard isValidDate(dateStr) else {
211+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
212+ }
201213
202214 let formatter = DateFormatter()
203215 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/a1eca.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/b4865.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -183,11 +183,23 @@ extension Array where Element == TopLevel.Element {
183183
184184 // MARK: - Helper functions for creating encoders and decoders
185185
186+private func isValidDate(_ value: String) -> Bool {
187+ let formatter = DateFormatter()
188+ formatter.locale = Locale(identifier: "en_US_POSIX")
189+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
190+ formatter.dateFormat = "u-MM-dd"
191+ formatter.isLenient = false
192+ return formatter.date(from: String(value.prefix(10))) != nil
193+}
194+
186195 func newJSONDecoder() -> JSONDecoder {
187196 let decoder = JSONDecoder()
188197 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
189198 let container = try decoder.singleValueContainer()
190199 let dateStr = try container.decode(String.self).uppercased()
200+ guard isValidDate(dateStr) else {
201+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
202+ }
191203
192204 let formatter = DateFormatter()
193205 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/cf0d8.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/d23d5.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -182,11 +182,23 @@ extension Result {
182182
183183 // MARK: - Helper functions for creating encoders and decoders
184184
185+private func isValidDate(_ value: String) -> Bool {
186+ let formatter = DateFormatter()
187+ formatter.locale = Locale(identifier: "en_US_POSIX")
188+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
189+ formatter.dateFormat = "u-MM-dd"
190+ formatter.isLenient = false
191+ return formatter.date(from: String(value.prefix(10))) != nil
192+}
193+
185194 func newJSONDecoder() -> JSONDecoder {
186195 let decoder = JSONDecoder()
187196 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
188197 let container = try decoder.singleValueContainer()
189198 let dateStr = try container.decode(String.self).uppercased()
199+ guard isValidDate(dateStr) else {
200+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
201+ }
190202
191203 let formatter = DateFormatter()
192204 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/dbfb3.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -812,11 +812,23 @@ extension Wind {
812812
813813 // MARK: - Helper functions for creating encoders and decoders
814814
815+private func isValidDate(_ value: String) -> Bool {
816+ let formatter = DateFormatter()
817+ formatter.locale = Locale(identifier: "en_US_POSIX")
818+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
819+ formatter.dateFormat = "u-MM-dd"
820+ formatter.isLenient = false
821+ return formatter.date(from: String(value.prefix(10))) != nil
822+}
823+
815824 func newJSONDecoder() -> JSONDecoder {
816825 let decoder = JSONDecoder()
817826 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
818827 let container = try decoder.singleValueContainer()
819828 let dateStr = try container.decode(String.self).uppercased()
829+ guard isValidDate(dateStr) else {
830+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
831+ }
820832
821833 let formatter = DateFormatter()
822834 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/df957.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/e2915.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -811,11 +811,23 @@ extension Wind {
811811
812812 // MARK: - Helper functions for creating encoders and decoders
813813
814+private func isValidDate(_ value: String) -> Bool {
815+ let formatter = DateFormatter()
816+ formatter.locale = Locale(identifier: "en_US_POSIX")
817+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
818+ formatter.dateFormat = "u-MM-dd"
819+ formatter.isLenient = false
820+ return formatter.date(from: String(value.prefix(10))) != nil
821+}
822+
814823 func newJSONDecoder() -> JSONDecoder {
815824 let decoder = JSONDecoder()
816825 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
817826 let container = try decoder.singleValueContainer()
818827 let dateStr = try container.decode(String.self).uppercased()
828+ guard isValidDate(dateStr) else {
829+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
830+ }
819831
820832 let formatter = DateFormatter()
821833 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/priority/bug2590.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -103,11 +103,23 @@ extension Invoice {
103103
104104 // MARK: - Helper functions for creating encoders and decoders
105105
106+private func isValidDate(_ value: String) -> Bool {
107+ let formatter = DateFormatter()
108+ formatter.locale = Locale(identifier: "en_US_POSIX")
109+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
110+ formatter.dateFormat = "u-MM-dd"
111+ formatter.isLenient = false
112+ return formatter.date(from: String(value.prefix(10))) != nil
113+}
114+
106115 func newJSONDecoder() -> JSONDecoder {
107116 let decoder = JSONDecoder()
108117 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
109118 let container = try decoder.singleValueContainer()
110119 let dateStr = try container.decode(String.self).uppercased()
120+ guard isValidDate(dateStr) else {
121+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
122+ }
111123
112124 let formatter = DateFormatter()
113125 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/priority/bug2663.json

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -59,11 +59,23 @@ extension TopLevel {
5959
6060 // MARK: - Helper functions for creating encoders and decoders
6161
62+private func isValidDate(_ value: String) -> Bool {
63+ let formatter = DateFormatter()
64+ formatter.locale = Locale(identifier: "en_US_POSIX")
65+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
66+ formatter.dateFormat = "u-MM-dd"
67+ formatter.isLenient = false
68+ return formatter.date(from: String(value.prefix(10))) != nil
69+}
70+
6271 func newJSONDecoder() -> JSONDecoder {
6372 let decoder = JSONDecoder()
6473 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
6574 let container = try decoder.singleValueContainer()
6675 let dateStr = try container.decode(String.self).uppercased()
76+ guard isValidDate(dateStr) else {
77+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
78+ }
6779
6880 let formatter = DateFormatter()
6981 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/priority/keywords.json

4 generated files · +48 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -16280,11 +16280,23 @@ extension Yield {
1628016280
1628116281 // MARK: - Helper functions for creating encoders and decoders
1628216282
16283+private func isValidDate(_ value: String) -> Bool {
16284+ let formatter = DateFormatter()
16285+ formatter.locale = Locale(identifier: "en_US_POSIX")
16286+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
16287+ formatter.dateFormat = "u-MM-dd"
16288+ formatter.isLenient = false
16289+ return formatter.date(from: String(value.prefix(10))) != nil
16290+}
16291+
1628316292 func newJSONDecoder() -> JSONDecoder {
1628416293 let decoder = JSONDecoder()
1628516294 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
1628616295 let container = try decoder.singleValueContainer()
1628716296 let dateStr = try container.decode(String.self).uppercased()
16297+ guard isValidDate(dateStr) else {
16298+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
16299+ }
1628816300
1628916301 let formatter = DateFormatter()
1629016302 formatter.calendar = Calendar(identifier: .iso8601)
Mswiftobjective-c-support-true__struct-or-class-class--f14372afa3e4 / quicktype.swift+12 −0
@@ -18313,11 +18313,23 @@ extension Yield {
1831318313
1831418314 // MARK: - Helper functions for creating encoders and decoders
1831518315
18316+private func isValidDate(_ value: String) -> Bool {
18317+ let formatter = DateFormatter()
18318+ formatter.locale = Locale(identifier: "en_US_POSIX")
18319+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
18320+ formatter.dateFormat = "u-MM-dd"
18321+ formatter.isLenient = false
18322+ return formatter.date(from: String(value.prefix(10))) != nil
18323+}
18324+
1831618325 func newJSONDecoder() -> JSONDecoder {
1831718326 let decoder = JSONDecoder()
1831818327 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
1831918328 let container = try decoder.singleValueContainer()
1832018329 let dateStr = try container.decode(String.self).uppercased()
18330+ guard isValidDate(dateStr) else {
18331+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
18332+ }
1832118333
1832218334 let formatter = DateFormatter()
1832318335 formatter.calendar = Calendar(identifier: .iso8601)
Mswiftprotocol-equatable--bd9068f466c1 / quicktype.swift+12 −0
@@ -18314,11 +18314,23 @@ extension Yield {
1831418314
1831518315 // MARK: - Helper functions for creating encoders and decoders
1831618316
18317+private func isValidDate(_ value: String) -> Bool {
18318+ let formatter = DateFormatter()
18319+ formatter.locale = Locale(identifier: "en_US_POSIX")
18320+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
18321+ formatter.dateFormat = "u-MM-dd"
18322+ formatter.isLenient = false
18323+ return formatter.date(from: String(value.prefix(10))) != nil
18324+}
18325+
1831718326 func newJSONDecoder() -> JSONDecoder {
1831818327 let decoder = JSONDecoder()
1831918328 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
1832018329 let container = try decoder.singleValueContainer()
1832118330 let dateStr = try container.decode(String.self).uppercased()
18331+ guard isValidDate(dateStr) else {
18332+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
18333+ }
1832218334
1832318335 let formatter = DateFormatter()
1832418336 formatter.calendar = Calendar(identifier: .iso8601)
Mswiftsendable-true--1c3982c78639 / quicktype.swift+12 −0
@@ -16280,11 +16280,23 @@ extension Yield {
1628016280
1628116281 // MARK: - Helper functions for creating encoders and decoders
1628216282
16283+private func isValidDate(_ value: String) -> Bool {
16284+ let formatter = DateFormatter()
16285+ formatter.locale = Locale(identifier: "en_US_POSIX")
16286+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
16287+ formatter.dateFormat = "u-MM-dd"
16288+ formatter.isLenient = false
16289+ return formatter.date(from: String(value.prefix(10))) != nil
16290+}
16291+
1628316292 func newJSONDecoder() -> JSONDecoder {
1628416293 let decoder = JSONDecoder()
1628516294 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
1628616295 let container = try decoder.singleValueContainer()
1628716296 let dateStr = try container.decode(String.self).uppercased()
16297+ guard isValidDate(dateStr) else {
16298+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
16299+ }
1628816300
1628916301 let formatter = DateFormatter()
1629016302 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -1659,11 +1659,23 @@ extension Array where Element == TopLevel.Element {
16591659
16601660 // MARK: - Helper functions for creating encoders and decoders
16611661
1662+private func isValidDate(_ value: String) -> Bool {
1663+ let formatter = DateFormatter()
1664+ formatter.locale = Locale(identifier: "en_US_POSIX")
1665+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
1666+ formatter.dateFormat = "u-MM-dd"
1667+ formatter.isLenient = false
1668+ return formatter.date(from: String(value.prefix(10))) != nil
1669+}
1670+
16621671 func newJSONDecoder() -> JSONDecoder {
16631672 let decoder = JSONDecoder()
16641673 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
16651674 let container = try decoder.singleValueContainer()
16661675 let dateStr = try container.decode(String.self).uppercased()
1676+ guard isValidDate(dateStr) else {
1677+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
1678+ }
16671679
16681680 let formatter = DateFormatter()
16691681 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mswiftdefault / quicktype.swift+12 −0
@@ -159,11 +159,23 @@ extension Address {
159159
160160 // MARK: - Helper functions for creating encoders and decoders
161161
162+private func isValidDate(_ value: String) -> Bool {
163+ let formatter = DateFormatter()
164+ formatter.locale = Locale(identifier: "en_US_POSIX")
165+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
166+ formatter.dateFormat = "u-MM-dd"
167+ formatter.isLenient = false
168+ return formatter.date(from: String(value.prefix(10))) != nil
169+}
170+
162171 func newJSONDecoder() -> JSONDecoder {
163172 let decoder = JSONDecoder()
164173 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
165174 let container = try decoder.singleValueContainer()
166175 let dateStr = try container.decode(String.self).uppercased()
176+ guard isValidDate(dateStr) else {
177+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
178+ }
167179
168180 let formatter = DateFormatter()
169181 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mschema-swiftdefault / quicktype.swift+12 −0
@@ -87,11 +87,23 @@ enum BarEnum: String, Codable {
8787
8888 // MARK: - Helper functions for creating encoders and decoders
8989
90+private func isValidDate(_ value: String) -> Bool {
91+ let formatter = DateFormatter()
92+ formatter.locale = Locale(identifier: "en_US_POSIX")
93+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
94+ formatter.dateFormat = "u-MM-dd"
95+ formatter.isLenient = false
96+ return formatter.date(from: String(value.prefix(10))) != nil
97+}
98+
9099 func newJSONDecoder() -> JSONDecoder {
91100 let decoder = JSONDecoder()
92101 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
93102 let container = try decoder.singleValueContainer()
94103 let dateStr = try container.decode(String.self).uppercased()
104+ guard isValidDate(dateStr) else {
105+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
106+ }
95107
96108 let formatter = DateFormatter()
97109 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/schema/date-time.schema

1 generated file · +12 −0
Mschema-swiftdefault / quicktype.swift+12 −0
@@ -107,11 +107,23 @@ enum ComplexUnionArrayEnum: String, Codable {
107107
108108 // MARK: - Helper functions for creating encoders and decoders
109109
110+private func isValidDate(_ value: String) -> Bool {
111+ let formatter = DateFormatter()
112+ formatter.locale = Locale(identifier: "en_US_POSIX")
113+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
114+ formatter.dateFormat = "u-MM-dd"
115+ formatter.isLenient = false
116+ return formatter.date(from: String(value.prefix(10))) != nil
117+}
118+
110119 func newJSONDecoder() -> JSONDecoder {
111120 let decoder = JSONDecoder()
112121 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
113122 let container = try decoder.singleValueContainer()
114123 let dateStr = try container.decode(String.self).uppercased()
124+ guard isValidDate(dateStr) else {
125+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
126+ }
115127
116128 let formatter = DateFormatter()
117129 formatter.calendar = Calendar(identifier: .iso8601)
Test case

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

1 generated file · +12 −0
Mschema-swiftdefault / quicktype.swift+12 −0
@@ -71,11 +71,23 @@ extension TopLevel {
7171
7272 // MARK: - Helper functions for creating encoders and decoders
7373
74+private func isValidDate(_ value: String) -> Bool {
75+ let formatter = DateFormatter()
76+ formatter.locale = Locale(identifier: "en_US_POSIX")
77+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
78+ formatter.dateFormat = "u-MM-dd"
79+ formatter.isLenient = false
80+ return formatter.date(from: String(value.prefix(10))) != nil
81+}
82+
7483 func newJSONDecoder() -> JSONDecoder {
7584 let decoder = JSONDecoder()
7685 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
7786 let container = try decoder.singleValueContainer()
7887 let dateStr = try container.decode(String.self).uppercased()
88+ guard isValidDate(dateStr) else {
89+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
90+ }
7991
8092 let formatter = DateFormatter()
8193 formatter.calendar = Calendar(identifier: .iso8601)
No generated files match these filters.