Update to Apollo 2.0.4 #10
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR upgrades
apollo-iosto version 2.0, modernizing the API to use async/await and improving the overall architecture. The adapter initialization is now handled by a dedicatedGraphQLAPIConfigurationstruct, and completion handlers have been replaced with throwing async functions. The interceptor system has been updated to align with the new standards in Apollo 2.0.Key Features
apollo-ioshas been updated from version1.17.0to2.0.4.GraphQLAPIAdapternow usesasync/awaitforfetchandperformmethods, replacing the previous completion handler-based approach.GraphQLAPIConfigurationhas been introduced to provide a cleaner and more robust way to configure the adapter.GraphQLRequestConfigurationallows for per-request customizations, such as adding extra headers.InterceptorProviderarchitecture in Apollo iOS 2.0.URLErrorandCancellationError, providing more specific error types like.connectionand.cancelled.SQLite.swiftdependency, which is no longer required by Apollo 2.0, has been removed.API Migration
GraphQLAPIAdapter(url: ...)let config = GraphQLAPIConfiguration(url: ...)GraphQLAPIAdapter(configuration: config)adapter.fetch(query: q) { result in ... }let data = try await adapter.fetch(query: q)adapter.perform(mutation: m) { result in ... }let data = try await adapter.perform(mutation: m)RequestHeadersprotocol used as a context object.GraphQLRequestConfigurationstruct passed to methods.