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 was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to release-3.12, this PR will be updated.
release-3.12
is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, runchangeset pre exit
onrelease-3.12
.Releases
@apollo/[email protected]
Minor Changes
#12124
ab0a1b5
Thanks @jerelmiller! - Promote to 3.12.0-rc.0#12131
21c3f08
Thanks @jerelmiller! - Allownull
as a validfrom
value inuseFragment
.#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 totrue
.You can selectively disable data masking using the
@unmask
directive. Apply this to any named fragment to receive all fields requested by the fragment.To help with migration, use the
@unmask
migrate mode which will add warnings when accessing fields that would otherwise be masked.Patch Changes
#12126
d10d702
Thanks @jerelmiller! - Maintain the existing document if its unchanged by the codemod and move to more naive whitespace formatting#12150
9ed1e1e
Thanks @jerelmiller! - Fix issue when usingUnmasked
with older versions of TypeScript when used with array fields.#12116
8ae6e4e
Thanks @jerelmiller! - Prevent field accessor warnings when using@unmask(mode: "migrate")
on objects that are passed intocache.identify
.#12120
6a98e76
Thanks @jerelmiller! - Provide a codemod that applies@unmask
to all named fragments for all operations and fragments. To use the codemod, run the following command:To customize the tag used to search for GraphQL operations, use the
--tag
option. By default the codemod looks forgql
andgraphql
tags.To apply the directive in migrate mode in order to receive runtime warnings on potentially masked fields, use the
--mode migrate
option.For more information on the options that can be used with
jscodeshift
, check out thejscodeshift
documentation.#12134
cfaf4ef
Thanks @jerelmiller! - Fix issue where data went missing when an unmasked fragment in migrate mode selected fields that the parent did not.#12154
d933def
Thanks @phryneas! - Data masking types: handle overlapping nested array types and fragments on interface types.#12139
5a53e15
Thanks @phryneas! - Fix issue where masked data would sometimes get returned when the field was part of a child fragment from a fragment unmasked by the parent query.#12123
8422a30
Thanks @jerelmiller! - Warn when using data masking with "no-cache" operations.#12139
5a53e15
Thanks @phryneas! - Fix issue where the warning emitted by@unmask(mode: "migrate")
would trigger unnecessarily when the fragment was used alongside a masked fragment inside an inline fragment.#12114
1d4ce00
Thanks @jerelmiller! - Fix error when combining@unmask
and@defer
directives on a fragment spread when data masking is enabled.#12130
1e7d009
Thanks @jerelmiller! - Fix error thrown when applying unmask migrate mode warnings on interface types with selection sets that contain inline fragment conditions.#12152
78137ec
Thanks @phryneas! - Add a helper that will skip the TS unmasking alorithm when no fragments are present on type level#12126
d10d702
Thanks @jerelmiller! - Ensure documents unchanged by the codemod are left untouched.#12133
a6ece37
Thanks @jerelmiller! - Ensurenull
is retained in nullable types when unmasking a type with theUnmasked
helper type.#12139
5a53e15
Thanks @phryneas! - Fix issue that threw errors when masking partial data with@unmask(mode: "migrate")
.