@isograph/react 0.3.1 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/.turbo/turbo-compile-libs.log +5 -0
  2. package/dist/core/FragmentReference.d.ts +5 -5
  3. package/dist/core/FragmentReference.d.ts.map +1 -1
  4. package/dist/core/IsographEnvironment.d.ts +15 -10
  5. package/dist/core/IsographEnvironment.d.ts.map +1 -1
  6. package/dist/core/PromiseWrapper.d.ts +4 -4
  7. package/dist/core/PromiseWrapper.d.ts.map +1 -1
  8. package/dist/core/PromiseWrapper.js +2 -9
  9. package/dist/core/areEqualWithDeepComparison.d.ts +1 -3
  10. package/dist/core/areEqualWithDeepComparison.d.ts.map +1 -1
  11. package/dist/core/areEqualWithDeepComparison.js +0 -2
  12. package/dist/core/brand.d.ts +2 -0
  13. package/dist/core/brand.d.ts.map +1 -0
  14. package/dist/core/brand.js +2 -0
  15. package/dist/core/cache.d.ts +7 -6
  16. package/dist/core/cache.d.ts.map +1 -1
  17. package/dist/core/cache.js +57 -36
  18. package/dist/core/check.d.ts +3 -3
  19. package/dist/core/check.d.ts.map +1 -1
  20. package/dist/core/componentCache.d.ts.map +1 -1
  21. package/dist/core/componentCache.js +3 -2
  22. package/dist/core/entrypoint.d.ts +20 -2
  23. package/dist/core/entrypoint.d.ts.map +1 -1
  24. package/dist/core/garbageCollection.d.ts +2 -2
  25. package/dist/core/garbageCollection.d.ts.map +1 -1
  26. package/dist/core/logging.d.ts +13 -4
  27. package/dist/core/logging.d.ts.map +1 -1
  28. package/dist/core/makeNetworkRequest.d.ts +3 -3
  29. package/dist/core/makeNetworkRequest.d.ts.map +1 -1
  30. package/dist/core/makeNetworkRequest.js +15 -15
  31. package/dist/core/read.d.ts +8 -8
  32. package/dist/core/read.d.ts.map +1 -1
  33. package/dist/core/read.js +98 -29
  34. package/dist/core/reader.d.ts +12 -8
  35. package/dist/core/reader.d.ts.map +1 -1
  36. package/dist/core/startUpdate.d.ts +7 -4
  37. package/dist/core/startUpdate.d.ts.map +1 -1
  38. package/dist/core/startUpdate.js +153 -5
  39. package/dist/core/util.d.ts +2 -1
  40. package/dist/core/util.d.ts.map +1 -1
  41. package/dist/index.d.ts +8 -5
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +8 -1
  44. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
  45. package/dist/loadable-hooks/useConnectionSpecPagination.js +1 -1
  46. package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts +1 -1
  47. package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts.map +1 -1
  48. package/dist/loadable-hooks/useImperativeExposedMutationField.js +1 -1
  49. package/dist/loadable-hooks/useImperativeLoadableField.d.ts +1 -1
  50. package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +1 -1
  51. package/dist/loadable-hooks/useImperativeLoadableField.js +1 -1
  52. package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
  53. package/dist/loadable-hooks/useSkipLimitPagination.js +1 -1
  54. package/dist/react/FragmentReader.d.ts +7 -13
  55. package/dist/react/FragmentReader.d.ts.map +1 -1
  56. package/dist/react/FragmentReader.js +3 -30
  57. package/dist/react/FragmentRenderer.d.ts +15 -0
  58. package/dist/react/FragmentRenderer.d.ts.map +1 -0
  59. package/dist/react/FragmentRenderer.js +35 -0
  60. package/dist/react/LoadableFieldReader.d.ts +12 -0
  61. package/dist/react/LoadableFieldReader.d.ts.map +1 -0
  62. package/dist/react/LoadableFieldReader.js +10 -0
  63. package/dist/react/LoadableFieldRenderer.d.ts +13 -0
  64. package/dist/react/LoadableFieldRenderer.d.ts.map +1 -0
  65. package/dist/react/LoadableFieldRenderer.js +37 -0
  66. package/dist/react/useImperativeReference.d.ts.map +1 -1
  67. package/dist/react/useImperativeReference.js +6 -6
  68. package/dist/react/useResult.d.ts.map +1 -1
  69. package/dist/react/useResult.js +1 -1
  70. package/package.json +4 -5
  71. package/src/core/FragmentReference.ts +16 -7
  72. package/src/core/IsographEnvironment.ts +20 -10
  73. package/src/core/PromiseWrapper.ts +13 -16
  74. package/src/core/areEqualWithDeepComparison.ts +5 -5
  75. package/src/core/brand.ts +18 -0
  76. package/src/core/cache.ts +74 -51
  77. package/src/core/check.ts +4 -4
  78. package/src/core/componentCache.ts +7 -2
  79. package/src/core/entrypoint.ts +32 -5
  80. package/src/core/garbageCollection.ts +3 -3
  81. package/src/core/logging.ts +16 -4
  82. package/src/core/makeNetworkRequest.ts +48 -23
  83. package/src/core/read.ts +153 -48
  84. package/src/core/reader.ts +11 -7
  85. package/src/core/startUpdate.ts +313 -7
  86. package/src/core/util.ts +4 -2
  87. package/src/index.ts +11 -3
  88. package/src/loadable-hooks/useConnectionSpecPagination.ts +1 -0
  89. package/src/loadable-hooks/useImperativeExposedMutationField.ts +2 -2
  90. package/src/loadable-hooks/useImperativeLoadableField.ts +2 -2
  91. package/src/loadable-hooks/useSkipLimitPagination.ts +1 -0
  92. package/src/react/FragmentReader.tsx +23 -39
  93. package/src/react/FragmentRenderer.tsx +46 -0
  94. package/src/react/LoadableFieldReader.tsx +40 -0
  95. package/src/react/LoadableFieldRenderer.tsx +41 -0
  96. package/src/react/useImperativeReference.ts +9 -8
  97. package/src/react/useResult.ts +1 -0
  98. package/src/tests/__isograph/Economist/link/output_type.ts +2 -0
  99. package/src/tests/__isograph/Node/asEconomist/resolver_reader.ts +28 -0
  100. package/src/tests/__isograph/Node/link/output_type.ts +3 -0
  101. package/src/tests/__isograph/Query/linkedUpdate/entrypoint.ts +31 -0
  102. package/src/tests/__isograph/Query/linkedUpdate/normalization_ast.ts +95 -0
  103. package/src/tests/__isograph/Query/linkedUpdate/output_type.ts +3 -0
  104. package/src/tests/__isograph/Query/linkedUpdate/param_type.ts +51 -0
  105. package/src/tests/__isograph/Query/linkedUpdate/query_text.ts +20 -0
  106. package/src/tests/__isograph/Query/linkedUpdate/resolver_reader.ts +93 -0
  107. package/src/tests/__isograph/Query/meName/entrypoint.ts +4 -1
  108. package/src/tests/__isograph/Query/meName/query_text.ts +1 -1
  109. package/src/tests/__isograph/Query/meName/resolver_reader.ts +1 -0
  110. package/src/tests/__isograph/Query/meNameSuccessor/entrypoint.ts +4 -1
  111. package/src/tests/__isograph/Query/meNameSuccessor/query_text.ts +1 -1
  112. package/src/tests/__isograph/Query/meNameSuccessor/resolver_reader.ts +3 -0
  113. package/src/tests/__isograph/Query/nodeField/entrypoint.ts +4 -1
  114. package/src/tests/__isograph/Query/nodeField/query_text.ts +1 -1
  115. package/src/tests/__isograph/Query/nodeField/resolver_reader.ts +1 -0
  116. package/src/tests/__isograph/Query/startUpdate/entrypoint.ts +31 -0
  117. package/src/tests/__isograph/Query/startUpdate/normalization_ast.ts +51 -0
  118. package/src/tests/__isograph/Query/startUpdate/output_type.ts +3 -0
  119. package/src/tests/__isograph/Query/startUpdate/param_type.ts +26 -0
  120. package/src/tests/__isograph/Query/startUpdate/parameters_type.ts +3 -0
  121. package/src/tests/__isograph/Query/startUpdate/query_text.ts +11 -0
  122. package/src/tests/__isograph/Query/startUpdate/resolver_reader.ts +55 -0
  123. package/src/tests/__isograph/Query/subquery/entrypoint.ts +4 -1
  124. package/src/tests/__isograph/Query/subquery/query_text.ts +1 -1
  125. package/src/tests/__isograph/Query/subquery/resolver_reader.ts +2 -0
  126. package/src/tests/__isograph/iso.ts +21 -1
  127. package/src/tests/__isograph/tsconfig.json +8 -0
  128. package/src/tests/normalizeData.test.ts +0 -1
  129. package/src/tests/startUpdate.test.ts +205 -0
  130. package/.turbo/turbo-compile-typescript.log +0 -4
package/src/core/check.ts CHANGED
@@ -4,7 +4,7 @@ import { Variables } from './FragmentReference';
4
4
  import {
5
5
  getLink,
6
6
  IsographEnvironment,
7
- Link,
7
+ StoreLink,
8
8
  StoreRecord,
9
9
  } from './IsographEnvironment';
10
10
  import { logMessage } from './logging';
@@ -30,14 +30,14 @@ export type CheckResult =
30
30
  }
31
31
  | {
32
32
  kind: 'MissingData';
33
- record: Link;
33
+ record: StoreLink;
34
34
  };
35
35
 
36
36
  export function check(
37
37
  environment: IsographEnvironment,
38
38
  normalizationAst: NormalizationAstNodes,
39
39
  variables: Variables,
40
- root: Link,
40
+ root: StoreLink,
41
41
  ): CheckResult {
42
42
  const recordsById = (environment.store[root.__typename] ??= {});
43
43
  const newStoreRecord = (recordsById[root.__link] ??= {});
@@ -61,7 +61,7 @@ function checkFromRecord(
61
61
  normalizationAst: NormalizationAstNodes,
62
62
  variables: Variables,
63
63
  record: StoreRecord,
64
- recordLink: Link,
64
+ recordLink: StoreLink,
65
65
  ): CheckResult {
66
66
  normalizationAstLoop: for (const normalizationAstNode of normalizationAst) {
67
67
  switch (normalizationAstNode.kind) {
@@ -16,7 +16,11 @@ export function getOrCreateCachedComponent(
16
16
  networkRequestOptions: NetworkRequestReaderOptions,
17
17
  ): React.FC<any> {
18
18
  // We create startUpdate outside of component to make it stable
19
- const startUpdate = createStartUpdate(environment, fragmentReference);
19
+ const startUpdate = createStartUpdate(
20
+ environment,
21
+ fragmentReference,
22
+ networkRequestOptions,
23
+ );
20
24
 
21
25
  return (environment.componentCache[
22
26
  stableIdForFragmentReference(fragmentReference, componentName)
@@ -49,7 +53,8 @@ export function getOrCreateCachedComponent(
49
53
  additionalRuntimeProps,
50
54
  );
51
55
  }
52
- Component.displayName = `${componentName} (id: ${fragmentReference.root}) @component`;
56
+ const idString = `(type: ${fragmentReference.root.__typename}, id: ${fragmentReference.root.__link})`;
57
+ Component.displayName = `${componentName} ${idString} @component`;
53
58
  return Component;
54
59
  })());
55
60
  }
@@ -17,11 +17,39 @@ export type ReaderWithRefetchQueries<
17
17
  readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
18
18
  };
19
19
 
20
+ export type ReaderWithRefetchQueriesLoader<
21
+ TReadFromStore extends UnknownTReadFromStore,
22
+ TClientFieldValue,
23
+ > = {
24
+ readonly kind: 'ReaderWithRefetchQueriesLoader';
25
+ readonly loader: () => Promise<
26
+ ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
27
+ >;
28
+ };
29
+
20
30
  export type NetworkRequestInfo<TNormalizationAst> = {
21
31
  readonly kind: 'NetworkRequestInfo';
22
- readonly queryText: string;
32
+ readonly operation: IsographOperation | IsographPersistedOperation;
23
33
  readonly normalizationAst: TNormalizationAst;
24
34
  };
35
+
36
+ export type IsographOperation = {
37
+ readonly kind: 'Operation';
38
+ readonly text: string;
39
+ };
40
+
41
+ export type IsographPersistedOperation = {
42
+ readonly kind: 'PersistedOperation';
43
+ readonly operationId: string;
44
+ readonly extraInfo: IsographPersistedOperationExtraInfo | null;
45
+ };
46
+
47
+ export type IsographPersistedOperationExtraInfo = {
48
+ readonly kind: 'PersistedOperationExtraInfo';
49
+ readonly operationName: string | null;
50
+ readonly operationKind: 'Query' | 'Mutation' | 'Subscription';
51
+ };
52
+
25
53
  // This type should be treated as an opaque type.
26
54
  export type IsographEntrypoint<
27
55
  TReadFromStore extends UnknownTReadFromStore,
@@ -30,10 +58,9 @@ export type IsographEntrypoint<
30
58
  > = {
31
59
  readonly kind: 'Entrypoint';
32
60
  readonly networkRequestInfo: NetworkRequestInfo<TNormalizationAst>;
33
- readonly readerWithRefetchQueries: ReaderWithRefetchQueries<
34
- TReadFromStore,
35
- TClientFieldValue
36
- >;
61
+ readonly readerWithRefetchQueries:
62
+ | ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
63
+ | ReaderWithRefetchQueriesLoader<TReadFromStore, TClientFieldValue>;
37
64
  readonly concreteType: TypeName;
38
65
  };
39
66
 
@@ -7,14 +7,14 @@ import {
7
7
  IsographEnvironment,
8
8
  IsographStore,
9
9
  StoreRecord,
10
- type Link,
10
+ type StoreLink,
11
11
  type TypeName,
12
12
  } from './IsographEnvironment';
13
13
 
14
14
  export type RetainedQuery = {
15
15
  readonly normalizationAst: NormalizationAstNodes;
16
16
  readonly variables: {};
17
- readonly root: Link;
17
+ readonly root: StoreLink;
18
18
  };
19
19
 
20
20
  export type DidUnretainSomeQuery = boolean;
@@ -117,7 +117,7 @@ function recordReachableIdsFromRecord(
117
117
  const linkKey = getParentRecordKey(selection, variables ?? {});
118
118
  const linkedFieldOrFields = currentRecord[linkKey];
119
119
 
120
- const links: Link[] = [];
120
+ const links: StoreLink[] = [];
121
121
  if (Array.isArray(linkedFieldOrFields)) {
122
122
  for (const maybeLink of linkedFieldOrFields) {
123
123
  const link = assertLink(maybeLink);
@@ -11,7 +11,7 @@ import {
11
11
  IsographEnvironment,
12
12
  IsographStore,
13
13
  StoreRecord,
14
- type Link,
14
+ type StoreLink,
15
15
  } from './IsographEnvironment';
16
16
  import { ReadDataResult } from './read';
17
17
  import { Arguments } from './util';
@@ -38,7 +38,7 @@ export type LogMessage =
38
38
  | {
39
39
  kind: 'ComponentRerendered';
40
40
  componentName: string;
41
- rootLink: Link;
41
+ rootLink: StoreLink;
42
42
  }
43
43
  | {
44
44
  kind: 'MakeNetworkRequest';
@@ -61,7 +61,7 @@ export type LogMessage =
61
61
  }
62
62
  | {
63
63
  kind: 'MissingFieldHandlerCalled';
64
- root: Link;
64
+ root: StoreLink;
65
65
  storeRecord: StoreRecord;
66
66
  fieldName: string;
67
67
  arguments: Arguments | null;
@@ -71,7 +71,7 @@ export type LogMessage =
71
71
  kind: 'DoneReading';
72
72
  response: ReadDataResult<any>;
73
73
  fieldName: string;
74
- root: Link;
74
+ root: StoreLink;
75
75
  }
76
76
  | {
77
77
  kind: 'NonEntrypointReceived';
@@ -83,6 +83,18 @@ export type LogMessage =
83
83
  }
84
84
  | {
85
85
  kind: 'EnvironmentCreated';
86
+ }
87
+ | {
88
+ kind: 'StartUpdateError';
89
+ error: any;
90
+ }
91
+ | {
92
+ kind: 'StartUpdateComplete';
93
+ updatedIds: EncounteredIds;
94
+ }
95
+ | {
96
+ kind: 'ErrorEncounteredInWithErrorHandling';
97
+ error: any;
86
98
  };
87
99
 
88
100
  export type LogFunction = (logMessage: LogMessage) => void;
@@ -4,6 +4,7 @@ import { check, DEFAULT_SHOULD_FETCH_VALUE, FetchOptions } from './check';
4
4
  import { getOrCreateCachedComponent } from './componentCache';
5
5
  import {
6
6
  IsographEntrypoint,
7
+ ReaderWithRefetchQueries,
7
8
  RefetchQueryNormalizationArtifact,
8
9
  type NormalizationAst,
9
10
  type NormalizationAstLoader,
@@ -19,7 +20,7 @@ import {
19
20
  retainQuery,
20
21
  unretainQuery,
21
22
  } from './garbageCollection';
22
- import { IsographEnvironment, Link, ROOT_ID } from './IsographEnvironment';
23
+ import { IsographEnvironment, ROOT_ID, StoreLink } from './IsographEnvironment';
23
24
  import { logMessage } from './logging';
24
25
  import {
25
26
  AnyError,
@@ -35,18 +36,28 @@ let networkRequestId = 0;
35
36
  export function maybeMakeNetworkRequest<
36
37
  TReadFromStore extends UnknownTReadFromStore,
37
38
  TClientFieldValue,
39
+ TArtifact extends
40
+ | RefetchQueryNormalizationArtifact
41
+ | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
38
42
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
39
43
  >(
40
44
  environment: IsographEnvironment,
41
- artifact:
42
- | RefetchQueryNormalizationArtifact
43
- | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
45
+ artifact: TArtifact,
44
46
  variables: ExtractParameters<TReadFromStore>,
45
- fetchOptions?: FetchOptions<TClientFieldValue>,
47
+ readerWithRefetchQueries: PromiseWrapper<
48
+ ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
49
+ > | null,
50
+ fetchOptions: FetchOptions<TClientFieldValue> | null,
46
51
  ): ItemCleanupPair<PromiseWrapper<void, AnyError>> {
47
52
  switch (fetchOptions?.shouldFetch ?? DEFAULT_SHOULD_FETCH_VALUE) {
48
53
  case 'Yes': {
49
- return makeNetworkRequest(environment, artifact, variables, fetchOptions);
54
+ return makeNetworkRequest(
55
+ environment,
56
+ artifact,
57
+ variables,
58
+ readerWithRefetchQueries,
59
+ fetchOptions,
60
+ );
50
61
  }
51
62
  case 'No': {
52
63
  return [wrapResolvedValue(undefined), () => {}];
@@ -77,6 +88,7 @@ export function maybeMakeNetworkRequest<
77
88
  environment,
78
89
  artifact,
79
90
  variables,
91
+ readerWithRefetchQueries,
80
92
  fetchOptions,
81
93
  );
82
94
  }
@@ -100,14 +112,18 @@ function loadNormalizationAst(
100
112
  export function makeNetworkRequest<
101
113
  TReadFromStore extends UnknownTReadFromStore,
102
114
  TClientFieldValue,
115
+ TArtifact extends
116
+ | RefetchQueryNormalizationArtifact
117
+ | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
103
118
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
104
119
  >(
105
120
  environment: IsographEnvironment,
106
- artifact:
107
- | RefetchQueryNormalizationArtifact
108
- | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
121
+ artifact: TArtifact,
109
122
  variables: ExtractParameters<TReadFromStore>,
110
- fetchOptions?: FetchOptions<TClientFieldValue>,
123
+ readerWithRefetchQueries: PromiseWrapper<
124
+ ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
125
+ > | null,
126
+ fetchOptions: FetchOptions<TClientFieldValue> | null,
111
127
  ): ItemCleanupPair<PromiseWrapper<void, AnyError>> {
112
128
  // TODO this should be a DataId and stored in the store
113
129
  const myNetworkRequestId = networkRequestId + '';
@@ -126,12 +142,13 @@ export function makeNetworkRequest<
126
142
  // This should be an observable, not a promise
127
143
  const promise = Promise.all([
128
144
  environment.networkFunction(
129
- artifact.networkRequestInfo.queryText,
145
+ artifact.networkRequestInfo.operation,
130
146
  variables,
131
147
  ),
132
148
  loadNormalizationAst(artifact.networkRequestInfo.normalizationAst),
149
+ readerWithRefetchQueries?.promise,
133
150
  ])
134
- .then(([networkResponse, normalizationAst]) => {
151
+ .then(([networkResponse, normalizationAst, readerWithRefetchQueries]) => {
135
152
  logMessage(environment, () => ({
136
153
  kind: 'ReceivedNetworkResponse',
137
154
  networkResponse,
@@ -154,9 +171,6 @@ export function makeNetworkRequest<
154
171
  normalizationAst.selections,
155
172
  networkResponse.data ?? {},
156
173
  variables,
157
- artifact.kind === 'Entrypoint'
158
- ? artifact.readerWithRefetchQueries.nestedRefetchQueries
159
- : [],
160
174
  root,
161
175
  );
162
176
  const retainedQuery = {
@@ -178,6 +192,7 @@ export function makeNetworkRequest<
178
192
  environment,
179
193
  root,
180
194
  variables,
195
+ readerWithRefetchQueries,
181
196
  );
182
197
 
183
198
  try {
@@ -238,14 +253,18 @@ type NetworkRequestStatus =
238
253
  function readDataForOnComplete<
239
254
  TReadFromStore extends UnknownTReadFromStore,
240
255
  TClientFieldValue,
241
- TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
242
- >(
243
- artifact:
256
+ TArtifact extends
244
257
  | RefetchQueryNormalizationArtifact
245
258
  | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
259
+ TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
260
+ >(
261
+ artifact: TArtifact,
246
262
  environment: IsographEnvironment,
247
- root: Link,
263
+ root: StoreLink,
248
264
  variables: ExtractParameters<TReadFromStore>,
265
+ readerWithRefetchQueries:
266
+ | ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
267
+ | undefined,
249
268
  ): TClientFieldValue | null {
250
269
  // An entrypoint, but not a RefetchQueryNormalizationArtifact, has a reader ASTs.
251
270
  // So, we can only pass data to onComplete if makeNetworkRequest was passed an entrypoint.
@@ -262,12 +281,17 @@ function readDataForOnComplete<
262
281
  suspendIfInFlight: false,
263
282
  throwOnNetworkError: false,
264
283
  };
284
+ const resolvedReaderWithRefetchQueries =
285
+ readerWithRefetchQueries as ReaderWithRefetchQueries<
286
+ TReadFromStore,
287
+ TClientFieldValue
288
+ >;
265
289
 
266
290
  const fragment: FragmentReference<TReadFromStore, TClientFieldValue> = {
267
291
  kind: 'FragmentReference',
268
292
  // TODO this smells.
269
293
  readerWithRefetchQueries: wrapResolvedValue(
270
- artifact.readerWithRefetchQueries,
294
+ resolvedReaderWithRefetchQueries,
271
295
  ),
272
296
  root,
273
297
  variables,
@@ -278,7 +302,7 @@ function readDataForOnComplete<
278
302
  fragment,
279
303
  fakeNetworkRequestOptions,
280
304
  ).item;
281
- const readerArtifact = artifact.readerWithRefetchQueries.readerArtifact;
305
+ const readerArtifact = resolvedReaderWithRefetchQueries.readerArtifact;
282
306
  switch (readerArtifact.kind) {
283
307
  case 'ComponentReaderArtifact': {
284
308
  // @ts-expect-error We should find a way to encode this in the type system:
@@ -293,7 +317,7 @@ function readDataForOnComplete<
293
317
  kind: 'ReaderWithRefetchQueries',
294
318
  readerArtifact: readerArtifact,
295
319
  nestedRefetchQueries:
296
- artifact.readerWithRefetchQueries.nestedRefetchQueries,
320
+ resolvedReaderWithRefetchQueries.nestedRefetchQueries,
297
321
  }),
298
322
  root,
299
323
  variables,
@@ -311,7 +335,8 @@ function readDataForOnComplete<
311
335
  startUpdate: getOrCreateCachedStartUpdate(
312
336
  environment,
313
337
  fragment,
314
- artifact.readerWithRefetchQueries.readerArtifact.fieldName,
338
+ resolvedReaderWithRefetchQueries.readerArtifact.fieldName,
339
+ fakeNetworkRequestOptions,
315
340
  ),
316
341
  }
317
342
  : undefined),