···11+---
22+'@urql/exchange-graphcache': minor
33+---
44+55+Allow `@_optional` and `@_required` to be placed on fragment definitions and inline fragments
+16
exchanges/graphcache/src/ast/traversal.ts
···93939494 return false;
9595};
9696+9797+/** Resolves @_optional and @_required directive to determine whether the fields in a fragment are conaidered optional. */
9898+export const isOptional = (
9999+ node: FormattedNode<FragmentSpreadNode | InlineFragmentNode>
100100+): boolean | undefined => {
101101+ const { optional, required } = getDirectives(node);
102102+ if (required) {
103103+ return false;
104104+ }
105105+106106+ if (optional) {
107107+ return true;
108108+ }
109109+110110+ return undefined;
111111+};