Skip to content

Instantly share code, notes, and snippets.

@damienissa
Created December 8, 2019 16:45
Show Gist options
  • Select an option

  • Save damienissa/ec0e22139f9f9045b64e360f4de01a30 to your computer and use it in GitHub Desktop.

Select an option

Save damienissa/ec0e22139f9f9045b64e360f4de01a30 to your computer and use it in GitHub Desktop.
import Foundation
import Combine
extension URLSession {
@discardableResult
func dataTaskPublisher<Response: Decodable>(for request: URLRequest, type: Response.Type) -> AnyPublisher<Response, Error> {
dataTaskPublisher(for: request)
.map { $0.data }
.decode(type: Response.self, decoder: JSONDecoder())
.receive(on: DispatchQueue.main)
.eraseToAnyPublisher()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment