@@ -54,17 +54,18 @@ internal extension URLSession {
54
54
return . failure( parseError)
55
55
}
56
56
if let responseData = responseData {
57
+ if let error = try ? ParseCoding . jsonDecoder ( ) . decode ( ParseError . self, from: responseData) {
58
+ return . failure( error)
59
+ }
60
+ if URLSession . parse. configuration. urlCache? . cachedResponse ( for: request) == nil {
61
+ URLSession . parse. configuration. urlCache?
62
+ . storeCachedResponse ( . init( response: response,
63
+ data: responseData) ,
64
+ for: request)
65
+ }
57
66
do {
58
- if URLSession . parse. configuration. urlCache? . cachedResponse ( for: request) == nil {
59
- URLSession . parse. configuration. urlCache? . storeCachedResponse ( . init( response: response,
60
- data: responseData) ,
61
- for: request)
62
- }
63
67
return try . success( mapper ( responseData) )
64
68
} catch {
65
- if let error = try ? ParseCoding . jsonDecoder ( ) . decode ( ParseError . self, from: responseData) {
66
- return . failure( error)
67
- }
68
69
guard let parseError = error as? ParseError else {
69
70
guard JSONSerialization . isValidJSONObject ( responseData) ,
70
71
let json = try ? JSONSerialization
@@ -255,7 +256,8 @@ internal extension URLSession {
255
256
completion: @escaping ( Result < U , ParseError > ) -> Void
256
257
) {
257
258
downloadTask ( with: request) { ( location, urlResponse, responseError) in
258
- completion ( self . makeResult ( request: request, location: location,
259
+ completion ( self . makeResult ( request: request,
260
+ location: location,
259
261
urlResponse: urlResponse,
260
262
responseError: responseError,
261
263
mapper: mapper) )
0 commit comments