@isograph/react 0.0.0-main-134dea28 → 0.0.0-main-d57fb7f5

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 (35) hide show
  1. package/dist/core/cache.d.ts +1 -1
  2. package/dist/core/cache.d.ts.map +1 -1
  3. package/dist/core/check.d.ts +2 -2
  4. package/dist/core/check.d.ts.map +1 -1
  5. package/dist/core/makeNetworkRequest.d.ts +9 -3
  6. package/dist/core/makeNetworkRequest.d.ts.map +1 -1
  7. package/dist/core/makeNetworkRequest.js +73 -6
  8. package/dist/core/read.d.ts.map +1 -1
  9. package/dist/core/read.js +4 -1
  10. package/dist/core/reader.d.ts +1 -1
  11. package/dist/core/reader.d.ts.map +1 -1
  12. package/dist/loadable-hooks/useClientSideDefer.d.ts +2 -2
  13. package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
  14. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +1 -1
  15. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
  16. package/dist/loadable-hooks/useImperativeLoadableField.d.ts +1 -1
  17. package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +1 -1
  18. package/dist/loadable-hooks/useSkipLimitPagination.d.ts +1 -1
  19. package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
  20. package/dist/react/useImperativeReference.d.ts +1 -1
  21. package/dist/react/useImperativeReference.d.ts.map +1 -1
  22. package/dist/react/useLazyReference.d.ts +1 -1
  23. package/dist/react/useLazyReference.d.ts.map +1 -1
  24. package/package.json +4 -4
  25. package/src/core/cache.ts +1 -1
  26. package/src/core/check.ts +2 -2
  27. package/src/core/makeNetworkRequest.ts +121 -14
  28. package/src/core/read.ts +6 -1
  29. package/src/core/reader.ts +1 -1
  30. package/src/loadable-hooks/useClientSideDefer.ts +3 -3
  31. package/src/loadable-hooks/useConnectionSpecPagination.ts +5 -2
  32. package/src/loadable-hooks/useImperativeLoadableField.ts +2 -2
  33. package/src/loadable-hooks/useSkipLimitPagination.ts +8 -2
  34. package/src/react/useImperativeReference.ts +2 -2
  35. package/src/react/useLazyReference.ts +1 -1
@@ -19,7 +19,7 @@ export declare function stableCopy<T>(value: T): T;
19
19
  export declare function getOrCreateCacheForArtifact<TReadFromStore extends {
20
20
  parameters: object;
21
21
  data: object;
22
- }, TClientFieldValue>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
22
+ }, TClientFieldValue>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions<TClientFieldValue>): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
23
23
  type NetworkResponseScalarValue = string | number | boolean;
24
24
  type NetworkResponseValue = NetworkResponseScalarValue | null | NetworkResponseObject | (NetworkResponseObject | null)[] | (NetworkResponseScalarValue | null)[];
25
25
  export type NetworkResponseObject = {
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,MAAM,EACN,IAAI,EAGJ,KAAK,mBAAmB,EAIxB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAEhB,wBAAwB,EACxB,wBAAwB,EACxB,wCAAwC,EACzC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhF,OAAO,EAAE,sBAAsB,EAAwB,MAAM,QAAQ,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,wBAAgB,8BAA8B,CAC5C,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,GACrE,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAanE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAezC;AAED,wBAAgB,2BAA2B,CACzC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACjE,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAgCnE;AAED,KAAK,0BAA0B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC5D,KAAK,oBAAoB,GACrB,0BAA0B,GAC1B,IAAI,GACJ,qBAAqB,GACrB,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,GAChC,CAAC,0BAA0B,GAAG,IAAI,CAAC,EAAE,CAAC;AAE1C,MAAM,MAAM,qBAAqB,GAAG;IAGlC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,CAAC;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,wBAAgB,aAAa,CAC3B,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,qBAAqB,EACtC,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,wCAAwC,EAAE,EAChE,IAAI,EAAE,IAAI,GACT,cAAc,CAgChB;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,MAAM,IAAI,GACnB,MAAM,IAAI,CAOZ;AAED,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,MAAM,IAAI,GACnB,MAAM,IAAI,CAQZ;AAGD,wBAAgB,SAAS,CACvB,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAE3D,WAAW,EAAE,mBAAmB,EAChC,yBAAyB,EAAE,sBAAsB,CAAC,cAAc,CAAC,EACjE,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,EACzD,QAAQ,EAAE,CACR,4BAA4B,EAAE,sBAAsB,CAAC,cAAc,CAAC,KACjE,IAAI,EACT,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,GACnC,MAAM,IAAI,CAUZ;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,IAAI,GACf,OAAO,CAAC,IAAI,CAAC,CAWf;AA8HD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AA6ExD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,UAOlE;AAwPD,wBAAgB,kBAAkB,CAChC,OAAO,EACH,wBAAwB,GACxB,wBAAwB,GACxB,iBAAiB,GACjB,iBAAiB,EACrB,SAAS,EAAE,SAAS,GACnB,MAAM,CAUR;AA0ED,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,gBAAgB,QAAQ,CAAC"}
@@ -3,9 +3,9 @@ import { Variables } from './FragmentReference';
3
3
  import { IsographEnvironment, Link } from './IsographEnvironment';
4
4
  export type ShouldFetch = 'Yes' | 'No' | 'IfNecessary';
5
5
  export declare const DEFAULT_SHOULD_FETCH_VALUE: ShouldFetch;
6
- export type FetchOptions = {
6
+ export type FetchOptions<TReadOutData> = {
7
7
  shouldFetch?: ShouldFetch;
8
- onComplete?: () => void;
8
+ onComplete?: (data: TReadOutData) => void;
9
9
  onError?: () => void;
10
10
  };
11
11
  export type CheckResult = {
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/core/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAEL,mBAAmB,EACnB,IAAI,EAEL,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,CAAC;AAEvD,eAAO,MAAM,0BAA0B,EAAE,WAA2B,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB;IACE,IAAI,EAAE,YAAY,CAAC;CACpB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEN,wBAAgB,KAAK,CACnB,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,GACT,WAAW,CAgBb"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/core/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAEL,mBAAmB,EACnB,IAAI,EAEL,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,CAAC;AAEvD,eAAO,MAAM,0BAA0B,EAAE,WAA2B,CAAC;AAErE,MAAM,MAAM,YAAY,CAAC,YAAY,IAAI;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB;IACE,IAAI,EAAE,YAAY,CAAC;CACpB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEN,wBAAgB,KAAK,CACnB,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,GACT,WAAW,CAgBb"}
@@ -1,9 +1,15 @@
1
1
  import { ItemCleanupPair } from '@isograph/disposable-types';
2
2
  import { IsographEntrypoint, RefetchQueryNormalizationArtifact } from './entrypoint';
3
- import { Variables } from './FragmentReference';
3
+ import { ExtractParameters } from './FragmentReference';
4
4
  import { IsographEnvironment } from './IsographEnvironment';
5
5
  import { AnyError, PromiseWrapper } from './PromiseWrapper';
6
6
  import { FetchOptions } from './check';
7
- export declare function maybeMakeNetworkRequest(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>, variables: Variables, fetchOptions?: FetchOptions): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
8
- export declare function makeNetworkRequest(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>, variables: Variables, fetchOptions?: FetchOptions): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
7
+ export declare function maybeMakeNetworkRequest<TReadFromStore extends {
8
+ parameters: object;
9
+ data: object;
10
+ }, TClientFieldValue>(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions<TClientFieldValue>): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
11
+ export declare function makeNetworkRequest<TReadFromStore extends {
12
+ parameters: object;
13
+ data: object;
14
+ }, TClientFieldValue>(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions<TClientFieldValue>): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
9
15
  //# sourceMappingURL=makeNetworkRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeNetworkRequest.d.ts","sourceRoot":"","sources":["../../src/core/makeNetworkRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOhD,OAAO,EAAE,mBAAmB,EAAW,MAAM,uBAAuB,CAAC;AACrE,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAI1E,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,iCAAiC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1E,SAAS,EAAE,SAAS,EACpB,YAAY,CAAC,EAAE,YAAY,GAC1B,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA8BjD;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,iCAAiC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1E,SAAS,EAAE,SAAS,EACpB,YAAY,CAAC,EAAE,YAAY,GAC1B,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA+FjD"}
1
+ {"version":3,"file":"makeNetworkRequest.d.ts","sourceRoot":"","sources":["../../src/core/makeNetworkRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,OAAO,EAAE,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAM1E,wBAAgB,uBAAuB,CACrC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACzD,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA8BjD;AAED,wBAAgB,kBAAkB,CAChC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACzD,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA6GjD"}
@@ -8,6 +8,8 @@ const PromiseWrapper_1 = require("./PromiseWrapper");
8
8
  const cache_1 = require("./cache");
9
9
  const logging_1 = require("./logging");
10
10
  const check_1 = require("./check");
11
+ const read_1 = require("./read");
12
+ const componentCache_1 = require("./componentCache");
11
13
  let networkRequestId = 0;
12
14
  function maybeMakeNetworkRequest(environment, artifact, variables, fetchOptions) {
13
15
  var _a;
@@ -49,7 +51,7 @@ function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
49
51
  const promise = environment
50
52
  .networkFunction(artifact.networkRequestInfo.queryText, variables)
51
53
  .then((networkResponse) => {
52
- var _a, _b, _c;
54
+ var _a, _b;
53
55
  (0, logging_1.logMessage)(environment, {
54
56
  kind: 'ReceivedNetworkResponse',
55
57
  networkResponse,
@@ -59,14 +61,14 @@ function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
59
61
  try {
60
62
  (_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onError) === null || _a === void 0 ? void 0 : _a.call(fetchOptions);
61
63
  }
62
- catch (_d) { }
64
+ catch (_c) { }
63
65
  // @ts-expect-error Why are we getting the wrong constructor here?
64
66
  throw new Error('GraphQL network response had errors', {
65
67
  cause: networkResponse,
66
68
  });
67
69
  }
70
+ const root = { __link: IsographEnvironment_1.ROOT_ID, __typename: artifact.concreteType };
68
71
  if (status.kind === 'UndisposedIncomplete') {
69
- const root = { __link: IsographEnvironment_1.ROOT_ID, __typename: artifact.concreteType };
70
72
  (0, cache_1.normalizeData)(environment, artifact.networkRequestInfo.normalizationAst, (_b = networkResponse.data) !== null && _b !== void 0 ? _b : {}, variables, artifact.kind === 'Entrypoint'
71
73
  ? artifact.readerWithRefetchQueries.nestedRefetchQueries
72
74
  : [], root);
@@ -81,10 +83,18 @@ function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
81
83
  };
82
84
  (0, garbageCollection_1.retainQuery)(environment, retainedQuery);
83
85
  }
84
- try {
85
- (_c = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onComplete) === null || _c === void 0 ? void 0 : _c.call(fetchOptions);
86
+ const onComplete = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onComplete;
87
+ if (onComplete != null) {
88
+ let data = readDataForOnComplete(artifact, environment, root, variables);
89
+ try {
90
+ // @ts-expect-error this problem will be fixed when we remove RefetchQueryNormalizationArtifact
91
+ // (or we can fix this by having a single param of type { kind: 'Entrypoint', entrypoint,
92
+ // fetchOptions: FetchOptions<TReadFromStore> } | { kind: 'RefetchQuery', refetchQuery,
93
+ // fetchOptions: FetchOptions<void> }).
94
+ onComplete(data);
95
+ }
96
+ catch (_d) { }
86
97
  }
87
- catch (_e) { }
88
98
  })
89
99
  .catch((e) => {
90
100
  var _a;
@@ -116,3 +126,60 @@ function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
116
126
  ];
117
127
  return response;
118
128
  }
129
+ function readDataForOnComplete(artifact, environment, root, variables) {
130
+ // An entrypoint, but not a RefetchQueryNormalizationArtifact, has a reader ASTs.
131
+ // So, we can only pass data to onComplete if makeNetworkRequest was passed an entrypoint.
132
+ // This is awkward, since we don't express that in the types of the parameters
133
+ // (i.e. FetchOptions could be passed, along with a RefetchQueryNormalizationArtifact).
134
+ //
135
+ // However, this isn't a big deal: RefetchQueryNormalizationArtifact is going away.
136
+ if (artifact.kind === 'Entrypoint') {
137
+ // TODO this is a smell!
138
+ const fakeNetworkRequest = (0, PromiseWrapper_1.wrapResolvedValue)(undefined);
139
+ // TODO this is a smell — we know the network response is not in flight,
140
+ // so we don't really care!
141
+ const fakeNetworkRequestOptions = {
142
+ suspendIfInFlight: false,
143
+ throwOnNetworkError: false,
144
+ };
145
+ const fragmentResult = (0, read_1.readButDoNotEvaluate)(environment, {
146
+ kind: 'FragmentReference',
147
+ // TODO this smells.
148
+ readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)(artifact.readerWithRefetchQueries),
149
+ root,
150
+ variables,
151
+ networkRequest: fakeNetworkRequest,
152
+ }, fakeNetworkRequestOptions).item;
153
+ const readerArtifact = artifact.readerWithRefetchQueries.readerArtifact;
154
+ switch (readerArtifact.kind) {
155
+ case 'ComponentReaderArtifact': {
156
+ // @ts-expect-error We should find a way to encode this in the type system:
157
+ // if we have a ComponentReaderArtifact, we will necessarily have a
158
+ // TClientFieldValue which is a React.FC<...>
159
+ return (0, componentCache_1.getOrCreateCachedComponent)(environment, readerArtifact.componentName, {
160
+ kind: 'FragmentReference',
161
+ readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)({
162
+ kind: 'ReaderWithRefetchQueries',
163
+ readerArtifact: readerArtifact,
164
+ nestedRefetchQueries: artifact.readerWithRefetchQueries.nestedRefetchQueries,
165
+ }),
166
+ root,
167
+ variables,
168
+ networkRequest: fakeNetworkRequest,
169
+ }, fakeNetworkRequestOptions);
170
+ }
171
+ case 'EagerReaderArtifact': {
172
+ return readerArtifact.resolver({
173
+ data: fragmentResult,
174
+ parameters: variables,
175
+ });
176
+ }
177
+ default: {
178
+ const _ = readerArtifact;
179
+ _;
180
+ throw new Error('Expected case');
181
+ }
182
+ }
183
+ }
184
+ return null;
185
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,iBAAiB,EAEjB,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAe/B,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAE3D,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,sBAAsB,CAAC,cAAc,CAAC,CAkDxC;AAED,MAAM,MAAM,cAAc,CAAC,cAAc,IACrC;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B,CAAC;AAukBN,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,IAAI,GAClE,2BAA2B,CAK7B"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,iBAAiB,EAEjB,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAe/B,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAE3D,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,sBAAsB,CAAC,cAAc,CAAC,CAmDxC;AAED,MAAM,MAAM,cAAc,CAAC,cAAc,IACrC;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B,CAAC;AA2kBN,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,IAAI,GAClE,2BAA2B,CAK7B"}
package/dist/core/read.js CHANGED
@@ -11,6 +11,7 @@ const logging_1 = require("./logging");
11
11
  function readButDoNotEvaluate(environment, fragmentReference, networkRequestOptions) {
12
12
  var _a;
13
13
  const mutableEncounteredRecords = new Map();
14
+ // TODO consider moving this to the outside
14
15
  const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
15
16
  const response = readData(environment, readerWithRefetchQueries.readerArtifact.readerAst, fragmentReference.root, (_a = fragmentReference.variables) !== null && _a !== void 0 ? _a : {}, readerWithRefetchQueries.nestedRefetchQueries, fragmentReference.networkRequest, networkRequestOptions, mutableEncounteredRecords);
16
17
  (0, logging_1.logMessage)(environment, {
@@ -299,7 +300,9 @@ function readData(environment, ast, root, variables, nestedRefetchQueries, netwo
299
300
  };
300
301
  }
301
302
  else {
302
- target[field.alias] = (args, fetchOptions) => {
303
+ target[field.alias] = (args,
304
+ // TODO get the associated type for FetchOptions from the loadably selected field
305
+ fetchOptions) => {
303
306
  // TODO we should use the reader AST for this
304
307
  const includeReadOutData = (variables, readOutData) => {
305
308
  variables.id = readOutData.id;
@@ -82,6 +82,6 @@ type StableId = string;
82
82
  export type LoadableField<TReadFromStore extends {
83
83
  data: object;
84
84
  parameters: object;
85
- }, TResult, TArgs = ExtractParameters<TReadFromStore>> = (args: TArgs | void, fetchOptions: FetchOptions) => [StableId, Factory<FragmentReference<TReadFromStore, TResult>>];
85
+ }, TResult, TArgs = ExtractParameters<TReadFromStore>> = (args: TArgs | void, fetchOptions: FetchOptions<TResult>) => [StableId, Factory<FragmentReference<TReadFromStore, TResult>>];
86
86
  export {};
87
87
  //# sourceMappingURL=reader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/core/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/core/reader.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,13 @@ import { FetchOptions } from '../core/check';
4
4
  export declare function useClientSideDefer<TReadFromStore extends {
5
5
  data: object;
6
6
  parameters: object;
7
- }, TResult>(loadableField: LoadableField<TReadFromStore, TResult, ExtractParameters<TReadFromStore>>, args?: Record<PropertyKey, never>, fetchOptions?: FetchOptions): {
7
+ }, TResult>(loadableField: LoadableField<TReadFromStore, TResult, ExtractParameters<TReadFromStore>>, args?: Record<PropertyKey, never>, fetchOptions?: FetchOptions<TResult>): {
8
8
  fragmentReference: FragmentReference<TReadFromStore, TResult>;
9
9
  };
10
10
  export declare function useClientSideDefer<TReadFromStore extends {
11
11
  data: object;
12
12
  parameters: object;
13
- }, TResult, TProvidedArgs extends object>(loadableField: LoadableField<TReadFromStore, TResult, Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>>, args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>, fetchOptions?: FetchOptions): {
13
+ }, TResult, TProvidedArgs extends object>(loadableField: LoadableField<TReadFromStore, TResult, Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>>, args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>, fetchOptions?: FetchOptions<TResult>): {
14
14
  fragmentReference: FragmentReference<TReadFromStore, TResult>;
15
15
  };
16
16
  //# sourceMappingURL=useClientSideDefer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useClientSideDefer.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useClientSideDefer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,kBAAkB,CAChC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EAEP,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,iBAAiB,CAAC,cAAc,CAAC,CAClC,EACD,IAAI,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,EACjC,YAAY,CAAC,EAAE,YAAY,GAC1B;IAAE,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAErE,wBAAgB,kBAAkB,CAChC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,EAE5B,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,EACD,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,EAClE,YAAY,CAAC,EAAE,YAAY,GAC1B;IAAE,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"useClientSideDefer.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useClientSideDefer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,kBAAkB,CAChC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EAEP,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,iBAAiB,CAAC,cAAc,CAAC,CAClC,EACD,IAAI,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,EACjC,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GACnC;IAAE,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAErE,wBAAgB,kBAAkB,CAChC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,EAE5B,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,EACD,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,EAClE,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GACnC;IAAE,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC"}
@@ -10,7 +10,7 @@ type UsePaginationReturnValue<TReadFromStore extends {
10
10
  results: ReadonlyArray<TItem>;
11
11
  } | {
12
12
  kind: 'Complete';
13
- fetchMore: (count: number, fetchOptions?: FetchOptions) => void;
13
+ fetchMore: (count: number, fetchOptions?: FetchOptions<Connection<TItem>>) => void;
14
14
  results: ReadonlyArray<TItem>;
15
15
  hasNextPage: boolean;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useConnectionSpecPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useConnectionSpecPagination.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAM9D,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAI/D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,wBAAwB,CAC3B,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,IAEH;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,EAAE,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAwBN,KAAK,QAAQ,GAAG;IACd,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,IAAI;IACnB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAOF,KAAK,+BAA+B,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,EACD,KAAK,EAEL,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,UAAU,CAAC,KAAK,CAAC,EACjB,+BAA+B,CAChC,EACD,YAAY,CAAC,EAAE,QAAQ,GACtB,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,CA4OjD"}
1
+ {"version":3,"file":"useConnectionSpecPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useConnectionSpecPagination.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAM9D,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAI/D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,wBAAwB,CAC3B,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,IAEH;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,EAAE,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,CACT,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAC3C,IAAI,CAAC;IACV,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAwBN,KAAK,QAAQ,GAAG;IACd,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,IAAI;IACnB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAOF,KAAK,+BAA+B,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,EACD,KAAK,EAEL,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,UAAU,CAAC,KAAK,CAAC,EACjB,+BAA+B,CAChC,EACD,YAAY,CAAC,EAAE,QAAQ,GACtB,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,CA4OjD"}
@@ -7,7 +7,7 @@ type UseImperativeLoadableFieldReturn<TReadFromStore extends {
7
7
  parameters: object;
8
8
  }, TResult, TProvidedArgs extends object> = {
9
9
  fragmentReference: FragmentReference<TReadFromStore, TResult> | UnassignedState;
10
- loadField: (args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs> | void, fetchOptions?: FetchOptions) => void;
10
+ loadField: (args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs> | void, fetchOptions?: FetchOptions<TResult>) => void;
11
11
  };
12
12
  export declare function useImperativeLoadableField<TReadFromStore extends {
13
13
  data: object;
@@ -1 +1 @@
1
- {"version":3,"file":"useImperativeLoadableField.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useImperativeLoadableField.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,gCAAgC,CACnC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,IAC1B;IACF,iBAAiB,EACb,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,GAC1C,eAAe,CAAC;IACpB,SAAS,EAAE,CAGT,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,GAAG,IAAI,EACzE,YAAY,CAAC,EAAE,YAAY,KACxB,IAAI,CAAC;CACX,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,EAE5B,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,GACA,gCAAgC,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,CAc1E"}
1
+ {"version":3,"file":"useImperativeLoadableField.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useImperativeLoadableField.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,gCAAgC,CACnC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,IAC1B;IACF,iBAAiB,EACb,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,GAC1C,eAAe,CAAC;IACpB,SAAS,EAAE,CAGT,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,GAAG,IAAI,EACzE,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,KACjC,IAAI,CAAC;CACX,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,EAE5B,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,GACA,gCAAgC,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,CAc1E"}
@@ -6,7 +6,7 @@ type UseSkipLimitReturnValue<TReadFromStore extends {
6
6
  parameters: object;
7
7
  }, TItem> = {
8
8
  readonly kind: 'Complete';
9
- readonly fetchMore: (count: number, fetchOptions?: FetchOptions) => void;
9
+ readonly fetchMore: (count: number, fetchOptions?: FetchOptions<ReadonlyArray<TItem>>) => void;
10
10
  readonly results: ReadonlyArray<TItem>;
11
11
  } | {
12
12
  readonly kind: 'Pending';
@@ -1 +1 @@
1
- {"version":3,"file":"useSkipLimitPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useSkipLimitPagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAgB9D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,uBAAuB,CAC1B,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,IAEH;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACzE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CACxC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CACzC,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,CACrB,CAAC;CACH,CAAC;AA6BN,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,EACL,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,EAED,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,EACpB,0BAA0B,CAC3B,EACD,YAAY,CAAC,EAAE;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B,GACA,uBAAuB,CAAC,cAAc,EAAE,KAAK,CAAC,CA+NhD"}
1
+ {"version":3,"file":"useSkipLimitPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useSkipLimitPagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAgB9D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,uBAAuB,CAC1B,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,IAEH;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAC9C,IAAI,CAAC;IACV,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CACxC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CACzC,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,CACrB,CAAC;CACH,CAAC;AA6BN,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,EACL,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,EAED,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,EACpB,0BAA0B,CAC3B,EACD,YAAY,CAAC,EAAE;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B,GACA,uBAAuB,CAAC,cAAc,EAAE,KAAK,CAAC,CAkOhD"}
@@ -7,6 +7,6 @@ export declare function useImperativeReference<TReadFromStore extends {
7
7
  data: object;
8
8
  }, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>): {
9
9
  fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue> | UnassignedState;
10
- loadFragmentReference: (variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions) => void;
10
+ loadFragmentReference: (variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions<TClientFieldValue>) => void;
11
11
  };
12
12
  //# sourceMappingURL=useImperativeReference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useImperativeReference.d.ts","sourceRoot":"","sources":["../../src/react/useImperativeReference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAI7C,wBAAgB,sBAAsB,CACpC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAChE;IACD,iBAAiB,EACb,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GACpD,eAAe,CAAC;IACpB,qBAAqB,EAAE,CACrB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,KACxB,IAAI,CAAC;CACX,CAqCA"}
1
+ {"version":3,"file":"useImperativeReference.d.ts","sourceRoot":"","sources":["../../src/react/useImperativeReference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAI7C,wBAAgB,sBAAsB,CACpC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAChE;IACD,iBAAiB,EACb,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GACpD,eAAe,CAAC;IACpB,qBAAqB,EAAE,CACrB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,KAC3C,IAAI,CAAC;CACX,CAqCA"}
@@ -4,7 +4,7 @@ import { FetchOptions } from '../core/check';
4
4
  export declare function useLazyReference<TReadFromStore extends {
5
5
  parameters: object;
6
6
  data: object;
7
- }, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions): {
7
+ }, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions<TClientFieldValue>): {
8
8
  fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>;
9
9
  };
10
10
  //# sourceMappingURL=useLazyReference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLazyReference.d.ts","sourceRoot":"","sources":["../../src/react/useLazyReference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,gBAAgB,CAC9B,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACjE,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,GAC1B;IACD,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;CACzE,CAqBA"}
1
+ {"version":3,"file":"useLazyReference.d.ts","sourceRoot":"","sources":["../../src/react/useLazyReference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,gBAAgB,CAC9B,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACjE,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C;IACD,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;CACzE,CAqBA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isograph/react",
3
- "version": "0.0.0-main-134dea28",
3
+ "version": "0.0.0-main-d57fb7f5",
4
4
  "description": "Use Isograph with React",
5
5
  "homepage": "https://isograph.dev",
6
6
  "main": "dist/index.js",
@@ -19,9 +19,9 @@
19
19
  "iso-watch": "../../target/debug/isograph_cli --config ./isograph.config.json --watch"
20
20
  },
21
21
  "dependencies": {
22
- "@isograph/disposable-types": "0.0.0-main-134dea28",
23
- "@isograph/react-disposable-state": "0.0.0-main-134dea28",
24
- "@isograph/reference-counted-pointer": "0.0.0-main-134dea28"
22
+ "@isograph/disposable-types": "0.0.0-main-d57fb7f5",
23
+ "@isograph/react-disposable-state": "0.0.0-main-d57fb7f5",
24
+ "@isograph/reference-counted-pointer": "0.0.0-main-d57fb7f5"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "react": "18.3.1"
package/src/core/cache.ts CHANGED
@@ -89,7 +89,7 @@ export function getOrCreateCacheForArtifact<
89
89
  environment: IsographEnvironment,
90
90
  entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>,
91
91
  variables: ExtractParameters<TReadFromStore>,
92
- fetchOptions?: FetchOptions,
92
+ fetchOptions?: FetchOptions<TClientFieldValue>,
93
93
  ): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>> {
94
94
  const cacheKey =
95
95
  entrypoint.networkRequestInfo.queryText +
package/src/core/check.ts CHANGED
@@ -13,9 +13,9 @@ export type ShouldFetch = 'Yes' | 'No' | 'IfNecessary';
13
13
 
14
14
  export const DEFAULT_SHOULD_FETCH_VALUE: ShouldFetch = 'IfNecessary';
15
15
 
16
- export type FetchOptions = {
16
+ export type FetchOptions<TReadOutData> = {
17
17
  shouldFetch?: ShouldFetch;
18
- onComplete?: () => void;
18
+ onComplete?: (data: TReadOutData) => void;
19
19
  onError?: () => void;
20
20
  };
21
21
 
@@ -3,14 +3,14 @@ import {
3
3
  IsographEntrypoint,
4
4
  RefetchQueryNormalizationArtifact,
5
5
  } from './entrypoint';
6
- import { Variables } from './FragmentReference';
6
+ import { ExtractParameters } from './FragmentReference';
7
7
  import {
8
8
  garbageCollectEnvironment,
9
9
  RetainedQuery,
10
10
  retainQuery,
11
11
  unretainQuery,
12
12
  } from './garbageCollection';
13
- import { IsographEnvironment, ROOT_ID } from './IsographEnvironment';
13
+ import { IsographEnvironment, Link, ROOT_ID } from './IsographEnvironment';
14
14
  import {
15
15
  AnyError,
16
16
  PromiseWrapper,
@@ -20,14 +20,21 @@ import {
20
20
  import { normalizeData } from './cache';
21
21
  import { logMessage } from './logging';
22
22
  import { check, DEFAULT_SHOULD_FETCH_VALUE, FetchOptions } from './check';
23
+ import { readButDoNotEvaluate } from './read';
24
+ import { getOrCreateCachedComponent } from './componentCache';
23
25
 
24
26
  let networkRequestId = 0;
25
27
 
26
- export function maybeMakeNetworkRequest(
28
+ export function maybeMakeNetworkRequest<
29
+ TReadFromStore extends { parameters: object; data: object },
30
+ TClientFieldValue,
31
+ >(
27
32
  environment: IsographEnvironment,
28
- artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>,
29
- variables: Variables,
30
- fetchOptions?: FetchOptions,
33
+ artifact:
34
+ | RefetchQueryNormalizationArtifact
35
+ | IsographEntrypoint<TReadFromStore, TClientFieldValue>,
36
+ variables: ExtractParameters<TReadFromStore>,
37
+ fetchOptions?: FetchOptions<TClientFieldValue>,
31
38
  ): ItemCleanupPair<PromiseWrapper<void, AnyError>> {
32
39
  switch (fetchOptions?.shouldFetch ?? DEFAULT_SHOULD_FETCH_VALUE) {
33
40
  case 'Yes': {
@@ -60,11 +67,16 @@ export function maybeMakeNetworkRequest(
60
67
  }
61
68
  }
62
69
 
63
- export function makeNetworkRequest(
70
+ export function makeNetworkRequest<
71
+ TReadFromStore extends { parameters: object; data: object },
72
+ TClientFieldValue,
73
+ >(
64
74
  environment: IsographEnvironment,
65
- artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>,
66
- variables: Variables,
67
- fetchOptions?: FetchOptions,
75
+ artifact:
76
+ | RefetchQueryNormalizationArtifact
77
+ | IsographEntrypoint<TReadFromStore, TClientFieldValue>,
78
+ variables: ExtractParameters<TReadFromStore>,
79
+ fetchOptions?: FetchOptions<TClientFieldValue>,
68
80
  ): ItemCleanupPair<PromiseWrapper<void, AnyError>> {
69
81
  // TODO this should be a DataId and stored in the store
70
82
  const myNetworkRequestId = networkRequestId + '';
@@ -100,8 +112,8 @@ export function makeNetworkRequest(
100
112
  });
101
113
  }
102
114
 
115
+ const root = { __link: ROOT_ID, __typename: artifact.concreteType };
103
116
  if (status.kind === 'UndisposedIncomplete') {
104
- const root = { __link: ROOT_ID, __typename: artifact.concreteType };
105
117
  normalizeData(
106
118
  environment,
107
119
  artifact.networkRequestInfo.normalizationAst,
@@ -124,9 +136,23 @@ export function makeNetworkRequest(
124
136
  retainQuery(environment, retainedQuery);
125
137
  }
126
138
 
127
- try {
128
- fetchOptions?.onComplete?.();
129
- } catch {}
139
+ const onComplete = fetchOptions?.onComplete;
140
+ if (onComplete != null) {
141
+ let data = readDataForOnComplete(
142
+ artifact,
143
+ environment,
144
+ root,
145
+ variables,
146
+ );
147
+
148
+ try {
149
+ // @ts-expect-error this problem will be fixed when we remove RefetchQueryNormalizationArtifact
150
+ // (or we can fix this by having a single param of type { kind: 'Entrypoint', entrypoint,
151
+ // fetchOptions: FetchOptions<TReadFromStore> } | { kind: 'RefetchQuery', refetchQuery,
152
+ // fetchOptions: FetchOptions<void> }).
153
+ onComplete(data);
154
+ } catch {}
155
+ }
130
156
  })
131
157
  .catch((e) => {
132
158
  logMessage(environment, {
@@ -173,3 +199,84 @@ type NetworkRequestStatus =
173
199
  readonly kind: 'UndisposedComplete';
174
200
  readonly retainedQuery: RetainedQuery;
175
201
  };
202
+
203
+ function readDataForOnComplete<
204
+ TReadFromStore extends { parameters: object; data: object },
205
+ TClientFieldValue,
206
+ >(
207
+ artifact:
208
+ | RefetchQueryNormalizationArtifact
209
+ | IsographEntrypoint<TReadFromStore, TClientFieldValue>,
210
+ environment: IsographEnvironment,
211
+ root: Link,
212
+ variables: ExtractParameters<TReadFromStore>,
213
+ ): TClientFieldValue | null {
214
+ // An entrypoint, but not a RefetchQueryNormalizationArtifact, has a reader ASTs.
215
+ // So, we can only pass data to onComplete if makeNetworkRequest was passed an entrypoint.
216
+ // This is awkward, since we don't express that in the types of the parameters
217
+ // (i.e. FetchOptions could be passed, along with a RefetchQueryNormalizationArtifact).
218
+ //
219
+ // However, this isn't a big deal: RefetchQueryNormalizationArtifact is going away.
220
+ if (artifact.kind === 'Entrypoint') {
221
+ // TODO this is a smell!
222
+ const fakeNetworkRequest = wrapResolvedValue(undefined);
223
+ // TODO this is a smell — we know the network response is not in flight,
224
+ // so we don't really care!
225
+ const fakeNetworkRequestOptions = {
226
+ suspendIfInFlight: false,
227
+ throwOnNetworkError: false,
228
+ };
229
+
230
+ const fragmentResult = readButDoNotEvaluate(
231
+ environment,
232
+ {
233
+ kind: 'FragmentReference',
234
+ // TODO this smells.
235
+ readerWithRefetchQueries: wrapResolvedValue(
236
+ artifact.readerWithRefetchQueries,
237
+ ),
238
+ root,
239
+ variables,
240
+ networkRequest: fakeNetworkRequest,
241
+ },
242
+ fakeNetworkRequestOptions,
243
+ ).item;
244
+ const readerArtifact = artifact.readerWithRefetchQueries.readerArtifact;
245
+ switch (readerArtifact.kind) {
246
+ case 'ComponentReaderArtifact': {
247
+ // @ts-expect-error We should find a way to encode this in the type system:
248
+ // if we have a ComponentReaderArtifact, we will necessarily have a
249
+ // TClientFieldValue which is a React.FC<...>
250
+ return getOrCreateCachedComponent(
251
+ environment,
252
+ readerArtifact.componentName,
253
+ {
254
+ kind: 'FragmentReference',
255
+ readerWithRefetchQueries: wrapResolvedValue({
256
+ kind: 'ReaderWithRefetchQueries',
257
+ readerArtifact: readerArtifact,
258
+ nestedRefetchQueries:
259
+ artifact.readerWithRefetchQueries.nestedRefetchQueries,
260
+ }),
261
+ root,
262
+ variables,
263
+ networkRequest: fakeNetworkRequest,
264
+ } as const,
265
+ fakeNetworkRequestOptions,
266
+ );
267
+ }
268
+ case 'EagerReaderArtifact': {
269
+ return readerArtifact.resolver({
270
+ data: fragmentResult,
271
+ parameters: variables,
272
+ });
273
+ }
274
+ default: {
275
+ const _: never = readerArtifact;
276
+ _;
277
+ throw new Error('Expected case');
278
+ }
279
+ }
280
+ }
281
+ return null;
282
+ }
package/src/core/read.ts CHANGED
@@ -49,6 +49,7 @@ export function readButDoNotEvaluate<
49
49
  ): WithEncounteredRecords<TReadFromStore> {
50
50
  const mutableEncounteredRecords: EncounteredIds = new Map();
51
51
 
52
+ // TODO consider moving this to the outside
52
53
  const readerWithRefetchQueries = readPromise(
53
54
  fragmentReference.readerWithRefetchQueries,
54
55
  );
@@ -461,7 +462,11 @@ function readData<TReadFromStore>(
461
462
  recordLink: refetchReaderParams.recordLink,
462
463
  };
463
464
  } else {
464
- target[field.alias] = (args: any, fetchOptions?: FetchOptions) => {
465
+ target[field.alias] = (
466
+ args: any,
467
+ // TODO get the associated type for FetchOptions from the loadably selected field
468
+ fetchOptions?: FetchOptions<any>,
469
+ ) => {
465
470
  // TODO we should use the reader AST for this
466
471
  const includeReadOutData = (variables: any, readOutData: any) => {
467
472
  variables.id = readOutData.id;
@@ -156,5 +156,5 @@ export type LoadableField<
156
156
  // user-facing API. Users should only interact with LoadableFields via APIs
157
157
  // like useClientSideDefer. These APIs should have a nullable fetchOptions
158
158
  // parameter, and provide a default value ({}) to the LoadableField.
159
- fetchOptions: FetchOptions,
159
+ fetchOptions: FetchOptions<TResult>,
160
160
  ) => [StableId, Factory<FragmentReference<TReadFromStore, TResult>>];
@@ -18,7 +18,7 @@ export function useClientSideDefer<
18
18
  ExtractParameters<TReadFromStore>
19
19
  >,
20
20
  args?: Record<PropertyKey, never>,
21
- fetchOptions?: FetchOptions,
21
+ fetchOptions?: FetchOptions<TResult>,
22
22
  ): { fragmentReference: FragmentReference<TReadFromStore, TResult> };
23
23
 
24
24
  export function useClientSideDefer<
@@ -32,7 +32,7 @@ export function useClientSideDefer<
32
32
  Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>
33
33
  >,
34
34
  args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>,
35
- fetchOptions?: FetchOptions,
35
+ fetchOptions?: FetchOptions<TResult>,
36
36
  ): { fragmentReference: FragmentReference<TReadFromStore, TResult> };
37
37
 
38
38
  export function useClientSideDefer<
@@ -46,7 +46,7 @@ export function useClientSideDefer<
46
46
  Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>
47
47
  >,
48
48
  args?: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>,
49
- fetchOptions?: FetchOptions,
49
+ fetchOptions?: FetchOptions<TResult>,
50
50
  ): { fragmentReference: FragmentReference<TReadFromStore, TResult> } {
51
51
  const [id, loader] = loadableField(args, fetchOptions ?? {});
52
52
  const environment = useIsographEnvironment();
@@ -32,7 +32,10 @@ type UsePaginationReturnValue<
32
32
  }
33
33
  | {
34
34
  kind: 'Complete';
35
- fetchMore: (count: number, fetchOptions?: FetchOptions) => void;
35
+ fetchMore: (
36
+ count: number,
37
+ fetchOptions?: FetchOptions<Connection<TItem>>,
38
+ ) => void;
36
39
  results: ReadonlyArray<TItem>;
37
40
  hasNextPage: boolean;
38
41
  };
@@ -194,7 +197,7 @@ export function useConnectionSpecPagination<
194
197
 
195
198
  const getFetchMore =
196
199
  (after: string | null) =>
197
- (count: number, fetchOptions?: FetchOptions): void => {
200
+ (count: number, fetchOptions?: FetchOptions<Connection<TItem>>): void => {
198
201
  const loadedField = loadableField(
199
202
  {
200
203
  after: after,
@@ -21,7 +21,7 @@ type UseImperativeLoadableFieldReturn<
21
21
  // TODO this should be void iff all args are provided by the query, like in
22
22
  // useClientSideDefer.
23
23
  args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs> | void,
24
- fetchOptions?: FetchOptions,
24
+ fetchOptions?: FetchOptions<TResult>,
25
25
  ) => void;
26
26
  };
27
27
 
@@ -42,7 +42,7 @@ export function useImperativeLoadableField<
42
42
  return {
43
43
  loadField: (
44
44
  args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs> | void,
45
- fetchOptions?: FetchOptions,
45
+ fetchOptions?: FetchOptions<TResult>,
46
46
  ) => {
47
47
  const [_id, loader] = loadableField(args, fetchOptions ?? {});
48
48
  setState(loader());
@@ -25,7 +25,10 @@ type UseSkipLimitReturnValue<
25
25
  > =
26
26
  | {
27
27
  readonly kind: 'Complete';
28
- readonly fetchMore: (count: number, fetchOptions?: FetchOptions) => void;
28
+ readonly fetchMore: (
29
+ count: number,
30
+ fetchOptions?: FetchOptions<ReadonlyArray<TItem>>,
31
+ ) => void;
29
32
  readonly results: ReadonlyArray<TItem>;
30
33
  }
31
34
  | {
@@ -179,7 +182,10 @@ export function useSkipLimitPagination<
179
182
 
180
183
  const getFetchMore =
181
184
  (loadedSoFar: number) =>
182
- (count: number, fetchOptions?: FetchOptions): void => {
185
+ (
186
+ count: number,
187
+ fetchOptions?: FetchOptions<ReadonlyArray<TItem>>,
188
+ ): void => {
183
189
  const loadedField = loadableField(
184
190
  {
185
191
  skip: loadedSoFar,
@@ -26,7 +26,7 @@ export function useImperativeReference<
26
26
  | UnassignedState;
27
27
  loadFragmentReference: (
28
28
  variables: ExtractParameters<TReadFromStore>,
29
- fetchOptions?: FetchOptions,
29
+ fetchOptions?: FetchOptions<TClientFieldValue>,
30
30
  ) => void;
31
31
  } {
32
32
  const { state, setState } =
@@ -38,7 +38,7 @@ export function useImperativeReference<
38
38
  fragmentReference: state,
39
39
  loadFragmentReference: (
40
40
  variables: ExtractParameters<TReadFromStore>,
41
- fetchOptions?: FetchOptions,
41
+ fetchOptions?: FetchOptions<TClientFieldValue>,
42
42
  ) => {
43
43
  const [networkRequest, disposeNetworkRequest] = maybeMakeNetworkRequest(
44
44
  environment,
@@ -15,7 +15,7 @@ export function useLazyReference<
15
15
  >(
16
16
  entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>,
17
17
  variables: ExtractParameters<TReadFromStore>,
18
- fetchOptions?: FetchOptions,
18
+ fetchOptions?: FetchOptions<TClientFieldValue>,
19
19
  ): {
20
20
  fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>;
21
21
  } {