diff --git a/Sources/ApolloCombine/ApolloClientExtensions.swift b/Sources/ApolloCombine/ApolloClientExtensions.swift index 293f496..1ba7c45 100644 --- a/Sources/ApolloCombine/ApolloClientExtensions.swift +++ b/Sources/ApolloCombine/ApolloClientExtensions.swift @@ -2,7 +2,7 @@ import Apollo import Combine import Foundation -public extension ApolloClient { +public extension ApolloClientProtocol { /// Fetches a query from the server or from the local cache, depending on the current contents of the cache and the specified cache policy. /// @@ -28,8 +28,9 @@ public extension ApolloClient { /// - queue: A dispatch queue on which the result handler will be called. Defaults to the main queue. /// - Returns: A publisher that delivers results from the perform operaion. func performPublisher(mutation: Mutation, + publishResultToStore: Bool = true, queue: DispatchQueue = .main) -> Publishers.ApolloPerform { - let config = Publishers.ApolloPerformConfiguration(client: self, mutation: mutation, queue: queue) + let config = Publishers.ApolloPerformConfiguration(client: self, mutation: mutation, publishResultToStore: publishResultToStore, queue: queue) return Publishers.ApolloPerform(with: config) } diff --git a/Sources/ApolloCombine/PublishersExtensions.swift b/Sources/ApolloCombine/PublishersExtensions.swift index c371907..e5aed73 100644 --- a/Sources/ApolloCombine/PublishersExtensions.swift +++ b/Sources/ApolloCombine/PublishersExtensions.swift @@ -27,7 +27,7 @@ public extension Publishers { } struct ApolloFetchConfiguration { - let client: ApolloClient + let client: ApolloClientProtocol let query: Query let cachePolicy: CachePolicy let contextIdentifier: UUID? @@ -91,8 +91,9 @@ public extension Publishers { } struct ApolloPerformConfiguration { - let client: ApolloClient + let client: ApolloClientProtocol let mutation: Mutation + let publishResultToStore: Bool let queue: DispatchQueue } @@ -109,6 +110,7 @@ public extension Publishers { func request(_ demand: Subscribers.Demand) { task = configuration.client.perform(mutation: configuration.mutation, + publishResultToStore: configuration.publishResultToStore, queue: configuration.queue) { [weak self] result in switch result { @@ -147,7 +149,7 @@ public extension Publishers { } struct ApolloUploadConfiguration { - let client: ApolloClient + let client: ApolloClientProtocol let operation: Operation let files: [GraphQLFile] let queue: DispatchQueue @@ -205,7 +207,7 @@ public extension Publishers { } struct ApolloWatchConfiguration { - let client: ApolloClient + let client: ApolloClientProtocol let query: Query let cachePolicy: CachePolicy } @@ -254,7 +256,7 @@ public extension Publishers { } struct ApolloSubscribeConfiguration { - let client: ApolloClient + let client: ApolloClientProtocol let subscription: Subscription let queue: DispatchQueue } @@ -303,7 +305,7 @@ public extension Publishers { } struct ApolloClearCacheConfiguration { - let client: ApolloClient + let client: ApolloClientProtocol let queue: DispatchQueue }