55// Created by Leif on 5/19/21.
66//
77
8+ import FLet
89import Foundation
910import SwiftUI
1011import Combine
@@ -22,21 +23,17 @@ public struct SDImageURLProvider: SDImageProviding {
2223
2324 public func image( forURL url: URL ) -> AnyPublisher < UIImage ? , Error > {
2425 Future { promise in
25- URLSession . shared
26- . dataTask ( with: url) { ( data, response, error) in
27- if let error = error {
28- promise ( . failure( error) )
29- }
30-
31- guard let data = data else {
32- log ( level: . error( " (SDImageURLProvider) Could not load Image for URL ( \( url) ). Response: \( String ( describing: response) ) . " , nil ) )
33- promise ( . success( nil ) )
34- return
35- }
36-
26+ __. transput. url. in (
27+ url: url,
28+ successHandler: { ( data: Data , response) in
3729 promise ( . success( UIImage ( data: data) ) )
30+ } ,
31+ errorHandler: { promise ( . failure( $0) ) } ,
32+ failureHandler: { response in
33+ log ( level: . error( " (SDImageURLProvider) Could not load Image for URL ( \( url) ). Response: \( String ( describing: response) ) . " , nil ) )
34+ promise ( . success( nil ) )
3835 }
39- . resume ( )
36+ )
4037 }
4138 . eraseToAnyPublisher ( )
4239 }
@@ -48,13 +45,9 @@ public struct SDImageFileProvider: SDImageProviding {
4845 public func image( forURL url: URL ) -> AnyPublisher < UIImage ? , Error > {
4946 Future { promise in
5047 let key = url. absoluteString. replacingOccurrences ( of: " / " , with: " - " )
51- let path = FileManager . default. urls (
52- for: . documentDirectory,
53- in: . userDomainMask
54- ) [ 0 ] . appendingPathComponent ( key)
5548
56- guard let data = try ? Data ( contentsOf : path ) else {
57- log ( level: . error( " (SDImageFileProvider) Could not load Image from path ( \( path . absoluteString ) ). " , nil ) )
49+ guard let data: Data = try ? __ . transput . file . in ( filename : key ) else {
50+ log ( level: . error( " (SDImageFileProvider) Could not load Image for key ( \( key ) ). " , nil ) )
5851 promise ( . success( nil ) )
5952 return
6053 }
0 commit comments