Skip to content

Commit b1df666

Browse files
authored
Merge pull request #3 from galbernator/steve/add-all-combine-platforms
Support all Combine platforms
2 parents a968206 + 37ac2f6 commit b1df666

5 files changed

Lines changed: 18 additions & 18 deletions

File tree

Sources/ObservableNetworking/NetworkManager.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,12 @@ public final class NetworkManager: Network {
4848
dataRequest(method: method, endpoint: endpoint, parameters: parameters, headers: authenticatedHeaders(headers), requiresAuthentication: true)
4949
}
5050

51-
@available(iOS 13.0, *)
51+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
5252
public func request(method: HTTPMethod, endpoint: String, parameters: [String : Any]? = nil, headers: [String : String]? = nil) -> AnyPublisher<Data, NetworkError> {
5353
dataRequest(method: method, endpoint: endpoint, parameters: parameters, headers: defaultHeaders(headers))
5454
}
5555

56-
@available(iOS 13.0, *)
56+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
5757
public func authenticatedRequest(method: HTTPMethod, endpoint: String, parameters: [String : Any]? = nil, headers: [String : String]? = nil) -> AnyPublisher<Data, NetworkError> {
5858
dataRequest(method: method, endpoint: endpoint, parameters: parameters, headers: authenticatedHeaders(headers))
5959
}
@@ -90,7 +90,7 @@ public final class NetworkManager: Network {
9090
return result
9191
}
9292

93-
@available(iOS 13.0, *)
93+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
9494
private func dataRequest(method: HTTPMethod, endpoint: String, parameters: [String : Any]?, headers: Header?) -> AnyPublisher<Data, NetworkError> {
9595
guard let request = generateRequest(method: method, endpoint: endpoint, parameters: parameters, headers: headers) else {
9696
let error = NetworkError.unexpected

Sources/ObservableNetworking/Protocols/Network.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ public protocol Network {
1515
func authenticatedRequest(method: HTTPMethod, endpoint: String, parameters: [String : Any]?, headers: [String : String]?) -> Observable<Result<Data, NetworkError>>
1616

1717
// Combine
18-
@available(iOS 13.0, *)
18+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
1919
func request(method: HTTPMethod, endpoint: String, parameters: [String : Any]?, headers: [String : String]?) -> AnyPublisher<Data, NetworkError>
20-
@available(iOS 13.0, *)
20+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
2121
func authenticatedRequest(method: HTTPMethod, endpoint: String, parameters: [String : Any]?, headers: [String : String]?) -> AnyPublisher<Data, NetworkError>
2222
}
2323

Sources/ObservableNetworking/Protocols/Session.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public protocol Session {
1313
typealias DataTaskResult = (Data?, URLResponse?, Error?) -> Void
1414
func dataTask(with request: NSURLRequest, completionHandler: @escaping DataTaskResult) -> DataTask
1515

16-
@available(iOS 13.0, *)
16+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
1717
func dataTaskPublisher<T: TaskPublisher>(for request: NSURLRequest) -> T
1818
}
1919

@@ -23,7 +23,7 @@ extension URLSession: Session {
2323
dataTask(with: request as URLRequest, completionHandler: completionHandler) as DataTask
2424
}
2525

26-
@available(iOS 13.0, *)
26+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
2727
public func dataTaskPublisher<T: TaskPublisher>(for request: NSURLRequest) -> T {
2828
dataTaskPublisher(for: request as URLRequest) as! T
2929
}
@@ -38,13 +38,13 @@ public protocol DataTask {
3838
extension URLSessionDataTask: DataTask {}
3939

4040
/// Protocol that allows dependecy injection for the express purpose of mocking `URLSession` during testing. This should not be used elsewhere
41-
@available(iOS 13.0, *)
41+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
4242
public protocol TaskPublisher: Publisher {}
4343

4444
// Make DataTaskPublisher conform to TaskPublisher protocol
45-
@available(iOS 13.0, *)
45+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
4646
extension URLSession.DataTaskPublisher: TaskPublisher {}
4747

4848
// Make AnyPublisher conform to TaskPublisher protocol
49-
@available(iOS 13.0, *)
49+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
5050
extension AnyPublisher: TaskPublisher {}

Tests/ObservableNetworkingTests/MockURLSession.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class MockURLSession: Session {
4646
return dataTask
4747
}
4848

49-
@available(iOS 13.0, *)
49+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
5050
func dataTaskPublisher<T>(for request: NSURLRequest) -> T where T : TaskPublisher {
5151
lastURL = request.url
5252
return MockDataTaskPublisher().eraseToAnyPublisher() as! T
@@ -82,11 +82,11 @@ class MockDataTaskPublisher: TaskPublisher {
8282
typealias Output = Data
8383
typealias Failure = NetworkError
8484

85-
@available(iOS 13.0, *)
85+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
8686
func receive<S>(subscriber: S) where S : Subscriber, MockDataTaskPublisher.Failure == S.Failure, MockDataTaskPublisher.Output == S.Input {}
8787
}
8888

89-
@available(iOS 13.0, *)
89+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
9090
extension Data: Subscriber {
9191
public typealias Input = Self
9292
public typealias Failure = NetworkError

Tests/ObservableNetworkingTests/NetworkManagerTests.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ final class NetworkManagerTests: XCTestCase {
207207

208208
// MARK: - Combine Tests
209209

210-
@available(iOS 13.0, *)
210+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
211211
func testCombinePostRequetInEnvironments() {
212212
MockEnvironment.allCases.forEach { environment in
213213
let endpoint = "combine"
@@ -235,7 +235,7 @@ final class NetworkManagerTests: XCTestCase {
235235
}
236236
}
237237

238-
@available(iOS 13.0, *)
238+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
239239
func testCombineGetRequestInEnvironments() {
240240
MockEnvironment.allCases.forEach { environment in
241241
let params = [ "userID": "1234567"]
@@ -264,7 +264,7 @@ final class NetworkManagerTests: XCTestCase {
264264
}
265265
}
266266

267-
@available(iOS 13.0, *)
267+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
268268
func testCombineAuthenticatedPostFaileWithNoCookie() {
269269
MockEnvironment.allCases.forEach { environment in
270270
let endpoint = "crashtastic"
@@ -286,7 +286,7 @@ final class NetworkManagerTests: XCTestCase {
286286
}
287287
}
288288

289-
@available(iOS 13.0, *)
289+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
290290
func testCombineAuthenticatedPostRequestInEnvironments() {
291291
MockEnvironment.allCases.forEach { environment in
292292
let endpoint = "something"
@@ -325,7 +325,7 @@ final class NetworkManagerTests: XCTestCase {
325325
}
326326
}
327327

328-
@available(iOS 13.0, *)
328+
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, macCatalyst 13.0, *)
329329
func testCombineAuthenticatedGetRequestInEnvironments() {
330330
MockEnvironment.allCases.forEach { environment in
331331
let params = [ "userID": "1234567"]

0 commit comments

Comments
 (0)