@apollo/client
Advanced tools
Changelog
3.11.9
a3f95c6
Thanks @jerelmiller! - Fix an issue where errors returned from a fetchMore
call from a Suspense hook would cause a Suspense boundary to be shown indefinitely.Changelog
3.12.0-alpha.0
#12042 1c0ecbf
Thanks @jerelmiller! - Introduces data masking into Apollo Client. Data masking allows components to access only the data they asked for through GraphQL fragments. This prevents coupling between components that might otherwise implicitly rely on fields not requested by the component. Data masking also provides the benefit that masked fields only rerender components that ask for the field.
To enable data masking in Apollo Client, set the dataMasking
option to true
.
new ApolloClient({
dataMasking: true,
// ... other options
});
You can selectively disable data masking using the @unmask
directive. Apply this to any named fragment to receive all fields requested by the fragment.
query {
user {
id
...UserFields @unmask
}
}
To help with migration, use the @unmask
migrate mode which will add warnings when accessing fields that would otherwise be masked.
query {
user {
id
...UserFields @unmask(mode: "migrate")
}
}
Changelog
3.11.7
e471cef
Thanks @jerelmiller! - Fixes a regression from where passing an invalid identifier to from
in useFragment
would result in the warning TypeError: Cannot read properties of undefined (reading '__typename')
.Changelog
3.11.6
#12049 9c26892
Thanks @phryneas and @maciesielka! - Fix a bug where useFragment
did not re-render as expected
#12044 04462a2
Thanks @DoctorJohn! - Cache the useSubscription
hook's restart
function definition between re-renders.
Changelog
3.11.5
#12027 eb3e21b
Thanks @JavaScriptBach! - Type MutationResult.reset
as an arrow function
#12020 82d8cb4
Thanks @jerelmiller! - Better conform to Rules of React by avoiding write of ref in render for useFragment
.