@apollo/client
Advanced tools
Changelog
3.12.7
#12281 d638ec3
Thanks @jerelmiller! - Make fatal tranport-level errors from multipart subscriptions available to the error link with the protocolErrors
property.
const errorLink = onError(({ protocolErrors }) => {
if (protocolErrors) {
console.log(protocolErrors);
}
});
#12281 d638ec3
Thanks @jerelmiller! - Fix the array type for the errors
field on the ApolloPayloadResult
type. This type was always in the shape of the GraphQL error format, per the multipart subscriptions protocol and never a plain string or a JavaScript error object.
Changelog
3.12.6
#12267 d57429d
Thanks @jerelmiller! - Maintain the TData
type when used with Unmasked
when TData
is not a masked type generated from GraphQL Codegen.
#12270 3601246
Thanks @jerelmiller! - Fix handling of tagged/branded primitive types when used as scalar values with Unmasked
.
Changelog
3.12.5
#12252 cb9cd4e
Thanks @jerelmiller! - Changes the default behavior of the MaybeMasked
type to preserve types unless otherwise specified. This change makes it easier to upgrade from older versions of the client where types could have unexpectedly changed in the application due to the default of trying to unwrap types into unmasked types. This change also fixes the compilation performance regression experienced when simply upgrading the client since types are now preserved by default.
A new mode
option has now been introduced to allow for the old behavior. See the next section on migrating if you wish to maintain the old default behavior after upgrading to this version.
If you've adopted data masking and have opted in to using masked types by setting the enabled
property to true
, you can remove this configuration entirely:
-declare module "@apollo/client" {
- interface DataMasking {
- mode: "unmask"
- }
-}
If you prefer to specify the behavior explicitly, change the property from enabled: true
, to mode: "preserveTypes"
:
declare module "@apollo/client" {
interface DataMasking {
- enabled: true
+ mode: "preserveTypes"
}
}
If you rely on the default behavior in 3.12.4 or below and would like to continue to use unmasked types by default, set the mode
to unmask
:
declare module "@apollo/client" {
interface DataMasking {
mode: "unmask";
}
}
Changelog
3.12.3
#12214 8bfee88
Thanks @phryneas! - Data masking: prevent infinite recursion of ContainsFragmentsRefs
type
#12204 851deb0
Thanks @jerelmiller! - Fix Unmasked
unwrapping tuple types into an array of their subtypes.
#12204 851deb0
Thanks @jerelmiller! - Ensure MaybeMasked
does not try and unwrap types that contain index signatures.
#12204 851deb0
Thanks @jerelmiller! - Ensure MaybeMasked
does not try to unwrap the type as Unmasked
if the type contains any
.