Releases: apollographql/apollo-ios
Version 0.27.0
- BREAKING: Replaced calls directly into the closure based implementation of
URLSession
with a delegate-based implementation calledURLSessionClient
.-
This (finally) allows background session configurations to be used with
ApolloClient
, since background session configurations immediately error out if you try to use the closure-basedURLSession
API. -
This makes a significant change to the initialization of
HTTPNetworkTransport
if you're using a customURLSession
: BecauseURLSession
must have its delegate set at the point of creation,URLSessionClient
is now creating the URL session. You can initialize aURLSessionClient
with aURLSessionConfiguration
. if before you were using:let session = URLSession(configuration: myCustomConfiguration) let url = URL(string: "http://localhost:8080/graphql")! let transport = HTTPNetworkTransport(url: url, session: session)
You will now need to use:
let client = URLSessionClient(sessionConfiguration: myCustomConfiguration) let url = URL(string: "http://localhost:8080/graphql")! let transport = HTTPNetworkTransport(url: url, client: client)
-
If you were passing in a session you'd already set yourself up to be the delegate of to handle GraphQL requests, you'll need to subclass
URLSessionClient
and override any delegate methods off ofURLSessionDelegate
,URLSessionTaskDelegate
, orURLSessionDataDelegate
you need to handle. Unfortunately only one class can be a delegate at a time, and that class must be declared when the session is instantiated.Note that if you don't need your existing delegate-based session to do any handling for things touched by Apollo, you can keep it completely separate if you'd prefer.
-
This does not change anything at the point of calls - everything is still closure-based in the end
Please file bugs on this ASAP if you run into problems. Thank you! (#1163)
-
Version 0.26.0
- BREAKING, though in a good way: Updated the typescript CLI to 2.27.2, and updated the script to pull from a CDN (currently backed by GitHub Releases) rather than old Circle images. This should significantly increase download performance and stability. (#1166)
- BREAKING: Updated the retry delegate to allow more fine-grained control of what error to return if an operation fails in the process of retrying. (#1128, #1167)
- Added support to the Swift scripting package to be able to use multiple headers when downloading a schema. (#1153)
- Added the ability to set the SSL trust validator on a websocket. (#1124)
- Fixed an issue deserializing custom scalars in
ApolloSQLite
. (#1144)
Version 0.25.0
- BREAKING: Updated the
swift-tools
version to 5.2 inPackage.swift
. Note that if you're usingswift-tools
5.2, you'll need to update the syntax of yourPackage.swift
file and specify the name of the library manually for Apollo. (#1099, #1106) - POSSIBLY BREAKING: Upgraded the typescript CLI to 2.26.0. No changes were found in test frameworks, but this could theoretically break some stuff. (#1107, #1113)
- NEW: Added the ability to set Starscream's underlying
enableSOCKSProxy
to better allow debugging web sockets in tools like Charles Proxy. (#1108) - Fixed several issues using paths with spaces in the Swift Codegen. (#1092, #1097).
ApolloCodegenLib
is now properly passing theheader
argument last when downloading a schema. (#1096)- Automatic Persisted Queries now also work with mutations. (#1110)
Version 0.24.0
- BREAKING: Updated
GraphQLResponse
to be generic over the response type rather than the operation type. This will allow more flexibility for generic modifications to methods that need to useGraphQLResponse
. (#1061) - BREAKING: Updated the file URL-based initializer of
GraphQL
to throw with a clear error instead of failing silently. Removed the ability to pass in an input stream since that can't be recreated on a failure. Updated initializers take either rawData
or a file URL so that the input stream can be recreated on a retry. (#1086, #1089) - In the Swift Package Manager based codegen, made sure that the folder the CLI will be downloaded to is created if it doesn't exist. (#1069)
Version 0.23.2
- Changed the
@available
flags added in 0.23.1 to#if os(macOS)
, since the former is runtime and the latter is compile time, to work around a bug where SwiftUI compiles theApolloCodegenLib
library even if it's not included in the target being previewed. (#1066) - Added support for
omitDeprecatedEnumCases
command line option I missed forApolloCodegenOptions
(#1053)
Version 0.23.1
Version 0.23.0
v0.23.0
-
BETA: Now available, SPM-based code generation, Phase 0 of our transition to Swift Codegen.
Note that the underlying codegen is still using
apollo-tooling
, but that will change as we proceed with Phase 1 of the Swift Codegen Project, generating the code in Swift.Documentation is available at our Swift Scripting page.
When this gets to the final version this will supersede existing codegen, so please file bugs galore on this so we can get it good to go as quickly as possible. Thank you! (#940, #1033)
-
Fixed some memory leaks in our internal Promises implementation. (#1016)
Version 0.22.0
- BREAKING: Updated CLI to v2.22.1, including a bunch of fixes on the Swift side:
- Marked files which are generated as
@generated
- Added documentation to the constructors of input structs
- Added additional type annotations to improve compile times.
- Marked files which are generated as
- BREAKING: Updated delegate in
HTTPNetworkTransport
to be aweak var
and to not be passed in as a parameter to the initializer. (#990, #1002) - Added a lock to
InMemoryNormalizedCache
to reduce possible race conditions. (#552) - Added the ability to not send duplicates on a websocket. (#1004)
- Fixed an issue that could lead to an undefined cache key in the SQLite library. (#991)
- Fixed an issue where existing fetch operations in a watcher would not be canceled before a new one was started. (#1012)
Version 0.21.0
- BREAKING, but by popular request: Removed the requirement that the
clientName
andclientVersion
onNetworkTransport
, and added a default implementation so custom implementations don't need to set these up themselves. (#954)