@isograph/react 0.0.0-main-4be0dc5c → 0.0.0-main-a8d365e0

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 (50) hide show
  1. package/.turbo/turbo-compile-typescript.log +1 -1
  2. package/dist/core/FragmentReference.d.ts +6 -5
  3. package/dist/core/FragmentReference.d.ts.map +1 -1
  4. package/dist/core/IsographEnvironment.d.ts +3 -7
  5. package/dist/core/IsographEnvironment.d.ts.map +1 -1
  6. package/dist/core/cache.d.ts +5 -17
  7. package/dist/core/cache.d.ts.map +1 -1
  8. package/dist/core/entrypoint.d.ts +6 -21
  9. package/dist/core/entrypoint.d.ts.map +1 -1
  10. package/dist/core/makeNetworkRequest.d.ts +3 -12
  11. package/dist/core/makeNetworkRequest.d.ts.map +1 -1
  12. package/dist/core/read.d.ts +2 -7
  13. package/dist/core/read.d.ts.map +1 -1
  14. package/dist/core/reader.d.ts +6 -26
  15. package/dist/core/reader.d.ts.map +1 -1
  16. package/dist/core/startUpdate.d.ts +2 -7
  17. package/dist/core/startUpdate.d.ts.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/loadable-hooks/useClientSideDefer.d.ts +4 -12
  21. package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
  22. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +4 -12
  23. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
  24. package/dist/loadable-hooks/useSkipLimitPagination.d.ts +4 -12
  25. package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
  26. package/dist/react/useImperativeReference.d.ts +3 -12
  27. package/dist/react/useImperativeReference.d.ts.map +1 -1
  28. package/dist/react/useLazyReference.d.ts +2 -7
  29. package/dist/react/useLazyReference.d.ts.map +1 -1
  30. package/dist/react/useReadAndSubscribe.d.ts +4 -12
  31. package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
  32. package/dist/react/useResult.d.ts +2 -7
  33. package/dist/react/useResult.d.ts.map +1 -1
  34. package/package.json +4 -4
  35. package/src/core/FragmentReference.ts +7 -5
  36. package/src/core/IsographEnvironment.ts +17 -18
  37. package/src/core/cache.ts +5 -23
  38. package/src/core/entrypoint.ts +6 -21
  39. package/src/core/makeNetworkRequest.ts +8 -17
  40. package/src/core/read.ts +3 -6
  41. package/src/core/reader.ts +6 -25
  42. package/src/core/startUpdate.ts +6 -9
  43. package/src/index.ts +1 -0
  44. package/src/loadable-hooks/useClientSideDefer.ts +5 -16
  45. package/src/loadable-hooks/useConnectionSpecPagination.ts +7 -16
  46. package/src/loadable-hooks/useSkipLimitPagination.ts +8 -21
  47. package/src/react/useImperativeReference.ts +3 -11
  48. package/src/react/useLazyReference.ts +2 -6
  49. package/src/react/useReadAndSubscribe.ts +4 -11
  50. package/src/react/useResult.ts +5 -7
@@ -1,19 +1,11 @@
1
- import { ExtractData, FragmentReference } from '../core/FragmentReference';
1
+ import { ExtractData, FragmentReference, type UnknownTReadFromStore } from '../core/FragmentReference';
2
2
  import { NetworkRequestReaderOptions, WithEncounteredRecords } from '../core/read';
3
- import type { ReaderAst, StartUpdate } from '../core/reader';
3
+ import type { ReaderAst } from '../core/reader';
4
4
  /**
5
5
  * Read the data from a fragment reference and subscribe to updates.
6
6
  */
7
- export declare function useReadAndSubscribe<TReadFromStore extends {
8
- parameters: object;
9
- data: object;
10
- startUpdate?: StartUpdate<object>;
11
- }>(fragmentReference: FragmentReference<TReadFromStore, any>, networkRequestOptions: NetworkRequestReaderOptions, readerAst: ReaderAst<TReadFromStore>): ExtractData<TReadFromStore>;
12
- export declare function useSubscribeToMultiple<TReadFromStore extends {
13
- parameters: object;
14
- data: object;
15
- startUpdate?: StartUpdate<object>;
16
- }>(items: ReadonlyArray<{
7
+ export declare function useReadAndSubscribe<TReadFromStore extends UnknownTReadFromStore>(fragmentReference: FragmentReference<TReadFromStore, any>, networkRequestOptions: NetworkRequestReaderOptions, readerAst: ReaderAst<TReadFromStore>): ExtractData<TReadFromStore>;
8
+ export declare function useSubscribeToMultiple<TReadFromStore extends UnknownTReadFromStore>(items: ReadonlyArray<{
17
9
  records: WithEncounteredRecords<TReadFromStore>;
18
10
  callback: (updatedRecords: WithEncounteredRecords<TReadFromStore>) => void;
19
11
  fragmentReference: FragmentReference<TReadFromStore, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"useReadAndSubscribe.d.ts","sourceRoot":"","sources":["../../src/react/useReadAndSubscribe.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,iBAAiB,EAElB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAE3B,sBAAsB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7D;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC,EAED,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,EACzD,qBAAqB,EAAE,2BAA2B,EAClD,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,GACnC,WAAW,CAAC,cAAc,CAAC,CAY7B;AAED,wBAAgB,sBAAsB,CACpC,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC,EAED,KAAK,EAAE,aAAa,CAAC;IACnB,OAAO,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAChD,QAAQ,EAAE,CAAC,cAAc,EAAE,sBAAsB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC3E,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC1D,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;CACtC,CAAC,QAiCH"}
1
+ {"version":3,"file":"useReadAndSubscribe.d.ts","sourceRoot":"","sources":["../../src/react/useReadAndSubscribe.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,iBAAiB,EAEjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAE3B,sBAAsB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,SAAS,qBAAqB,EAE5C,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,EACzD,qBAAqB,EAAE,2BAA2B,EAClD,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,GACnC,WAAW,CAAC,cAAc,CAAC,CAY7B;AAED,wBAAgB,sBAAsB,CACpC,cAAc,SAAS,qBAAqB,EAE5C,KAAK,EAAE,aAAa,CAAC;IACnB,OAAO,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAChD,QAAQ,EAAE,CAAC,cAAc,EAAE,sBAAsB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC3E,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC1D,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;CACtC,CAAC,QAiCH"}
@@ -1,11 +1,6 @@
1
- import { FragmentReference } from '../core/FragmentReference';
1
+ import { FragmentReference, type UnknownTReadFromStore } from '../core/FragmentReference';
2
2
  import { PromiseWrapper } from '../core/PromiseWrapper';
3
3
  import { NetworkRequestReaderOptions } from '../core/read';
4
- import type { StartUpdate } from '../core/reader';
5
- export declare function useResult<TReadFromStore extends {
6
- parameters: object;
7
- data: object;
8
- startUpdate?: StartUpdate<object>;
9
- }, TClientFieldValue>(fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>, partialNetworkRequestOptions?: Partial<NetworkRequestReaderOptions> | void): TClientFieldValue;
4
+ export declare function useResult<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue>(fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>, partialNetworkRequestOptions?: Partial<NetworkRequestReaderOptions> | void): TClientFieldValue;
10
5
  export declare function maybeUnwrapNetworkRequest(networkRequest: PromiseWrapper<void, any>, networkRequestOptions: NetworkRequestReaderOptions): void;
11
6
  //# sourceMappingURL=useResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useResult.d.ts","sourceRoot":"","sources":["../../src/react/useResult.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAEL,cAAc,EAEf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,2BAA2B,EAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKlD,wBAAgB,SAAS,CACvB,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC,EACD,iBAAiB,EAEjB,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACvE,4BAA4B,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,IAAI,GACzE,iBAAiB,CAwCnB;AAED,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,EACzC,qBAAqB,EAAE,2BAA2B,QAWnD"}
1
+ {"version":3,"file":"useResult.d.ts","sourceRoot":"","sources":["../../src/react/useResult.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,cAAc,EAEf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,2BAA2B,EAC5B,MAAM,cAAc,CAAC;AAKtB,wBAAgB,SAAS,CACvB,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EAEjB,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACvE,4BAA4B,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,IAAI,GACzE,iBAAiB,CAwCnB;AAED,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,EACzC,qBAAqB,EAAE,2BAA2B,QAWnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isograph/react",
3
- "version": "0.0.0-main-4be0dc5c",
3
+ "version": "0.0.0-main-a8d365e0",
4
4
  "description": "Use Isograph with React",
5
5
  "homepage": "https://isograph.dev",
6
6
  "main": "dist/index.js",
@@ -20,9 +20,9 @@
20
20
  "iso-watch": "cross-env ../../target/debug/isograph_cli --config ./isograph.config.json --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@isograph/disposable-types": "0.0.0-main-4be0dc5c",
24
- "@isograph/react-disposable-state": "0.0.0-main-4be0dc5c",
25
- "@isograph/reference-counted-pointer": "0.0.0-main-4be0dc5c"
23
+ "@isograph/disposable-types": "0.0.0-main-a8d365e0",
24
+ "@isograph/react-disposable-state": "0.0.0-main-a8d365e0",
25
+ "@isograph/reference-counted-pointer": "0.0.0-main-a8d365e0"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "react": "^18.0.0 || ^19.0.0"
@@ -8,6 +8,12 @@ export type VariableValue = string | number | boolean | null | object;
8
8
 
9
9
  export type Variables = { readonly [index: string]: VariableValue };
10
10
 
11
+ export type UnknownTReadFromStore = {
12
+ parameters: object;
13
+ data: object;
14
+ startUpdate?: StartUpdate<object>;
15
+ };
16
+
11
17
  export type ExtractData<T> = T extends {
12
18
  data: infer D extends object;
13
19
  }
@@ -27,11 +33,7 @@ export type ExtractStartUpdate<
27
33
  > = T['startUpdate'];
28
34
 
29
35
  export type FragmentReference<
30
- TReadFromStore extends {
31
- parameters: object;
32
- data: object;
33
- startUpdate?: StartUpdate<object>;
34
- },
36
+ TReadFromStore extends UnknownTReadFromStore,
35
37
  TClientFieldValue,
36
38
  > = {
37
39
  readonly kind: 'FragmentReference';
@@ -1,11 +1,15 @@
1
1
  import { ParentCache } from '@isograph/react-disposable-state';
2
2
  import { IsographEntrypoint } from './entrypoint';
3
- import { FragmentReference, Variables } from './FragmentReference';
3
+ import {
4
+ FragmentReference,
5
+ Variables,
6
+ type UnknownTReadFromStore,
7
+ } from './FragmentReference';
4
8
  import { RetainedQuery } from './garbageCollection';
5
9
  import { LogFunction, WrappedLogFunction } from './logging';
6
10
  import { PromiseWrapper, wrapPromise } from './PromiseWrapper';
7
11
  import { WithEncounteredRecords } from './read';
8
- import type { ReaderAst, StartUpdate } from './reader';
12
+ import type { ReaderAst } from './reader';
9
13
 
10
14
  export type ComponentOrFieldName = string;
11
15
  export type StringifiedArgs = string;
@@ -15,22 +19,17 @@ export type ComponentCache = {
15
19
  };
16
20
  };
17
21
 
18
- export type FragmentSubscription<
19
- TReadFromStore extends {
20
- parameters: object;
21
- data: object;
22
- startUpdate?: StartUpdate<object>;
23
- },
24
- > = {
25
- readonly kind: 'FragmentSubscription';
26
- readonly callback: (
27
- newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>,
28
- ) => void;
29
- /** The value read out from the previous call to readButDoNotEvaluate */
30
- readonly encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>;
31
- readonly fragmentReference: FragmentReference<TReadFromStore, any>;
32
- readonly readerAst: ReaderAst<TReadFromStore>;
33
- };
22
+ export type FragmentSubscription<TReadFromStore extends UnknownTReadFromStore> =
23
+ {
24
+ readonly kind: 'FragmentSubscription';
25
+ readonly callback: (
26
+ newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>,
27
+ ) => void;
28
+ /** The value read out from the previous call to readButDoNotEvaluate */
29
+ readonly encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>;
30
+ readonly fragmentReference: FragmentReference<TReadFromStore, any>;
31
+ readonly readerAst: ReaderAst<TReadFromStore>;
32
+ };
34
33
 
35
34
  export type AnyChangesToRecordSubscription = {
36
35
  readonly kind: 'AnyChangesToRecord';
package/src/core/cache.ts CHANGED
@@ -19,6 +19,7 @@ import {
19
19
  ExtractParameters,
20
20
  FragmentReference,
21
21
  Variables,
22
+ type UnknownTReadFromStore,
22
23
  } from './FragmentReference';
23
24
  import {
24
25
  DataId,
@@ -35,22 +36,13 @@ import { logMessage } from './logging';
35
36
  import { maybeMakeNetworkRequest } from './makeNetworkRequest';
36
37
  import { wrapResolvedValue } from './PromiseWrapper';
37
38
  import { readButDoNotEvaluate, WithEncounteredRecords } from './read';
38
- import {
39
- ReaderLinkedField,
40
- ReaderScalarField,
41
- type ReaderAst,
42
- type StartUpdate,
43
- } from './reader';
39
+ import { ReaderLinkedField, ReaderScalarField, type ReaderAst } from './reader';
44
40
  import { Argument, ArgumentValue } from './util';
45
41
 
46
42
  export const TYPENAME_FIELD_NAME = '__typename';
47
43
 
48
44
  export function getOrCreateItemInSuspenseCache<
49
- TReadFromStore extends {
50
- parameters: object;
51
- data: object;
52
- startUpdate?: StartUpdate<object>;
53
- },
45
+ TReadFromStore extends UnknownTReadFromStore,
54
46
  TClientFieldValue,
55
47
  >(
56
48
  environment: IsographEnvironment,
@@ -94,11 +86,7 @@ export function stableCopy<T>(value: T): T {
94
86
  }
95
87
 
96
88
  export function getOrCreateCacheForArtifact<
97
- TReadFromStore extends {
98
- parameters: object;
99
- data: object;
100
- startUpdate?: StartUpdate<object>;
101
- },
89
+ TReadFromStore extends UnknownTReadFromStore,
102
90
  TClientFieldValue,
103
91
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
104
92
  >(
@@ -228,13 +216,7 @@ export function subscribeToAnyChangesToRecord(
228
216
  }
229
217
 
230
218
  // TODO we should re-read and call callback if the value has changed
231
- export function subscribe<
232
- TReadFromStore extends {
233
- parameters: object;
234
- data: object;
235
- startUpdate?: StartUpdate<object>;
236
- },
237
- >(
219
+ export function subscribe<TReadFromStore extends UnknownTReadFromStore>(
238
220
  environment: IsographEnvironment,
239
221
  encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>,
240
222
  fragmentReference: FragmentReference<TReadFromStore, any>,
@@ -1,13 +1,10 @@
1
+ import type { UnknownTReadFromStore } from './FragmentReference';
1
2
  import type { TypeName } from './IsographEnvironment';
2
- import { TopLevelReaderArtifact, type StartUpdate } from './reader';
3
+ import { TopLevelReaderArtifact } from './reader';
3
4
  import { Arguments } from './util';
4
5
 
5
6
  export type ReaderWithRefetchQueries<
6
- TReadFromStore extends {
7
- parameters: object;
8
- data: object;
9
- startUpdate?: StartUpdate<object>;
10
- },
7
+ TReadFromStore extends UnknownTReadFromStore,
11
8
  TClientFieldValue,
12
9
  > = {
13
10
  readonly kind: 'ReaderWithRefetchQueries';
@@ -27,11 +24,7 @@ export type NetworkRequestInfo<TNormalizationAst> = {
27
24
  };
28
25
  // This type should be treated as an opaque type.
29
26
  export type IsographEntrypoint<
30
- TReadFromStore extends {
31
- parameters: object;
32
- data: object;
33
- startUpdate?: StartUpdate<object>;
34
- },
27
+ TReadFromStore extends UnknownTReadFromStore,
35
28
  TClientFieldValue,
36
29
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
37
30
  > = {
@@ -45,11 +38,7 @@ export type IsographEntrypoint<
45
38
  };
46
39
 
47
40
  export type IsographEntrypointLoader<
48
- TReadFromStore extends {
49
- parameters: object;
50
- data: object;
51
- startUpdate?: StartUpdate<object>;
52
- },
41
+ TReadFromStore extends UnknownTReadFromStore,
53
42
  TClientFieldValue,
54
43
  > = {
55
44
  readonly kind: 'EntrypointLoader';
@@ -110,11 +99,7 @@ export type RefetchQueryNormalizationArtifactWrapper = {
110
99
  };
111
100
 
112
101
  export function assertIsEntrypoint<
113
- TReadFromStore extends {
114
- parameters: object;
115
- data: object;
116
- startUpdate?: StartUpdate<object>;
117
- },
102
+ TReadFromStore extends UnknownTReadFromStore,
118
103
  TClientFieldValue,
119
104
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
120
105
  >(
@@ -8,7 +8,11 @@ import {
8
8
  type NormalizationAst,
9
9
  type NormalizationAstLoader,
10
10
  } from './entrypoint';
11
- import { ExtractParameters, type FragmentReference } from './FragmentReference';
11
+ import {
12
+ ExtractParameters,
13
+ type FragmentReference,
14
+ type UnknownTReadFromStore,
15
+ } from './FragmentReference';
12
16
  import {
13
17
  garbageCollectEnvironment,
14
18
  RetainedQuery,
@@ -24,17 +28,12 @@ import {
24
28
  wrapResolvedValue,
25
29
  } from './PromiseWrapper';
26
30
  import { readButDoNotEvaluate } from './read';
27
- import type { StartUpdate } from './reader';
28
31
  import { startUpdate } from './startUpdate';
29
32
 
30
33
  let networkRequestId = 0;
31
34
 
32
35
  export function maybeMakeNetworkRequest<
33
- TReadFromStore extends {
34
- parameters: object;
35
- data: object;
36
- startUpdate?: StartUpdate<object>;
37
- },
36
+ TReadFromStore extends UnknownTReadFromStore,
38
37
  TClientFieldValue,
39
38
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
40
39
  >(
@@ -99,11 +98,7 @@ function loadNormalizationAst(
99
98
  }
100
99
 
101
100
  export function makeNetworkRequest<
102
- TReadFromStore extends {
103
- parameters: object;
104
- data: object;
105
- startUpdate?: StartUpdate<object>;
106
- },
101
+ TReadFromStore extends UnknownTReadFromStore,
107
102
  TClientFieldValue,
108
103
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
109
104
  >(
@@ -241,11 +236,7 @@ type NetworkRequestStatus =
241
236
  };
242
237
 
243
238
  function readDataForOnComplete<
244
- TReadFromStore extends {
245
- parameters: object;
246
- data: object;
247
- startUpdate?: StartUpdate<object>;
248
- },
239
+ TReadFromStore extends UnknownTReadFromStore,
249
240
  TClientFieldValue,
250
241
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
251
242
  >(
package/src/core/read.ts CHANGED
@@ -16,6 +16,7 @@ import {
16
16
  ExtractParameters,
17
17
  FragmentReference,
18
18
  Variables,
19
+ type UnknownTReadFromStore,
19
20
  } from './FragmentReference';
20
21
  import {
21
22
  assertLink,
@@ -33,7 +34,7 @@ import {
33
34
  wrapPromise,
34
35
  wrapResolvedValue,
35
36
  } from './PromiseWrapper';
36
- import { ReaderAst, type StartUpdate } from './reader';
37
+ import { ReaderAst } from './reader';
37
38
  import { startUpdate } from './startUpdate';
38
39
  import { Arguments } from './util';
39
40
 
@@ -43,11 +44,7 @@ export type WithEncounteredRecords<T> = {
43
44
  };
44
45
 
45
46
  export function readButDoNotEvaluate<
46
- TReadFromStore extends {
47
- parameters: object;
48
- data: object;
49
- startUpdate?: StartUpdate<object>;
50
- },
47
+ TReadFromStore extends UnknownTReadFromStore,
51
48
  >(
52
49
  environment: IsographEnvironment,
53
50
  fragmentReference: FragmentReference<TReadFromStore, unknown>,
@@ -11,6 +11,7 @@ import {
11
11
  ExtractParameters,
12
12
  FragmentReference,
13
13
  type ExtractStartUpdate,
14
+ type UnknownTReadFromStore,
14
15
  } from './FragmentReference';
15
16
  import {
16
17
  ComponentOrFieldName,
@@ -20,11 +21,7 @@ import {
20
21
  import { Arguments } from './util';
21
22
 
22
23
  export type TopLevelReaderArtifact<
23
- TReadFromStore extends {
24
- parameters: object;
25
- data: object;
26
- startUpdate?: StartUpdate<object>;
27
- },
24
+ TReadFromStore extends UnknownTReadFromStore,
28
25
  TClientFieldValue,
29
26
  TComponentProps extends Record<PropertyKey, never>,
30
27
  > =
@@ -32,11 +29,7 @@ export type TopLevelReaderArtifact<
32
29
  | ComponentReaderArtifact<TReadFromStore, TComponentProps>;
33
30
 
34
31
  export type EagerReaderArtifact<
35
- TReadFromStore extends {
36
- parameters: object;
37
- data: object;
38
- startUpdate?: StartUpdate<object>;
39
- },
32
+ TReadFromStore extends UnknownTReadFromStore,
40
33
  TClientFieldValue,
41
34
  > = {
42
35
  readonly kind: 'EagerReaderArtifact';
@@ -48,11 +41,7 @@ export type EagerReaderArtifact<
48
41
  };
49
42
 
50
43
  export type ComponentReaderArtifact<
51
- TReadFromStore extends {
52
- parameters: object;
53
- data: object;
54
- startUpdate?: StartUpdate<object>;
55
- },
44
+ TReadFromStore extends UnknownTReadFromStore,
56
45
  TComponentProps extends Record<string, unknown> = Record<PropertyKey, never>,
57
46
  > = {
58
47
  readonly kind: 'ComponentReaderArtifact';
@@ -66,11 +55,7 @@ export type ComponentReaderArtifact<
66
55
  };
67
56
 
68
57
  export type ResolverFirstParameter<
69
- TReadFromStore extends {
70
- data: object;
71
- parameters: object;
72
- startUpdate?: StartUpdate<object>;
73
- },
58
+ TReadFromStore extends UnknownTReadFromStore,
74
59
  > = {
75
60
  data: ExtractData<TReadFromStore>;
76
61
  parameters: ExtractParameters<TReadFromStore>;
@@ -178,11 +163,7 @@ export type StableId = string;
178
163
  /// except to stringify the args or whatnot. Calling the factory can be
179
164
  /// expensive. For example, doing so will probably trigger a network request.
180
165
  export type LoadableField<
181
- TReadFromStore extends {
182
- data: object;
183
- parameters: object;
184
- startUpdate?: StartUpdate<object>;
185
- },
166
+ TReadFromStore extends UnknownTReadFromStore,
186
167
  TResult,
187
168
  TArgs = ExtractParameters<TReadFromStore>,
188
169
  > = (
@@ -1,14 +1,11 @@
1
- import type { ExtractData, ExtractStartUpdate } from './FragmentReference';
1
+ import type {
2
+ ExtractData,
3
+ ExtractStartUpdate,
4
+ UnknownTReadFromStore,
5
+ } from './FragmentReference';
2
6
  import type { IsographEnvironment } from './IsographEnvironment';
3
- import type { StartUpdate } from './reader';
4
7
 
5
- export function startUpdate<
6
- TReadFromStore extends {
7
- parameters: object;
8
- data: object;
9
- startUpdate?: StartUpdate<object>;
10
- },
11
- >(
8
+ export function startUpdate<TReadFromStore extends UnknownTReadFromStore>(
12
9
  _environment: IsographEnvironment,
13
10
  _data: ExtractData<TReadFromStore>,
14
11
  ): ExtractStartUpdate<TReadFromStore> {
package/src/index.ts CHANGED
@@ -105,6 +105,7 @@ export {
105
105
  type Variables,
106
106
  type ExtractParameters,
107
107
  type ExtractData,
108
+ type UnknownTReadFromStore,
108
109
  stableIdForFragmentReference,
109
110
  type ExtractStartUpdate,
110
111
  type VariableValue,
@@ -4,16 +4,13 @@ import { FetchOptions } from '../core/check';
4
4
  import {
5
5
  ExtractParameters,
6
6
  FragmentReference,
7
+ type UnknownTReadFromStore,
7
8
  } from '../core/FragmentReference';
8
- import { LoadableField, type StartUpdate } from '../core/reader';
9
+ import { LoadableField } from '../core/reader';
9
10
  import { useIsographEnvironment } from '../react/IsographEnvironmentProvider';
10
11
 
11
12
  export function useClientSideDefer<
12
- TReadFromStore extends {
13
- data: object;
14
- parameters: object;
15
- startUpdate?: StartUpdate<object>;
16
- },
13
+ TReadFromStore extends UnknownTReadFromStore,
17
14
  TResult,
18
15
  >(
19
16
  loadableField: LoadableField<
@@ -26,11 +23,7 @@ export function useClientSideDefer<
26
23
  ): { fragmentReference: FragmentReference<TReadFromStore, TResult> };
27
24
 
28
25
  export function useClientSideDefer<
29
- TReadFromStore extends {
30
- data: object;
31
- parameters: object;
32
- startUpdate?: StartUpdate<object>;
33
- },
26
+ TReadFromStore extends UnknownTReadFromStore,
34
27
  TResult,
35
28
  TProvidedArgs extends object,
36
29
  >(
@@ -44,11 +37,7 @@ export function useClientSideDefer<
44
37
  ): { fragmentReference: FragmentReference<TReadFromStore, TResult> };
45
38
 
46
39
  export function useClientSideDefer<
47
- TReadFromStore extends {
48
- data: object;
49
- parameters: object;
50
- startUpdate?: StartUpdate<object>;
51
- },
40
+ TReadFromStore extends UnknownTReadFromStore,
52
41
  TResult,
53
42
  TProvidedArgs extends object,
54
43
  >(
@@ -10,28 +10,23 @@ import {
10
10
  import { useState } from 'react';
11
11
  import { subscribeToAnyChange } from '../core/cache';
12
12
  import { FetchOptions } from '../core/check';
13
- import { FragmentReference } from '../core/FragmentReference';
13
+ import {
14
+ FragmentReference,
15
+ type UnknownTReadFromStore,
16
+ } from '../core/FragmentReference';
14
17
  import { getPromiseState, readPromise } from '../core/PromiseWrapper';
15
18
  import {
16
19
  readButDoNotEvaluate,
17
20
  type WithEncounteredRecords,
18
21
  } from '../core/read';
19
- import {
20
- LoadableField,
21
- type ReaderAst,
22
- type StartUpdate,
23
- } from '../core/reader';
22
+ import { LoadableField, type ReaderAst } from '../core/reader';
24
23
  import { startUpdate } from '../core/startUpdate';
25
24
  import { useIsographEnvironment } from '../react/IsographEnvironmentProvider';
26
25
  import { useSubscribeToMultiple } from '../react/useReadAndSubscribe';
27
26
  import { maybeUnwrapNetworkRequest } from '../react/useResult';
28
27
 
29
28
  export type UsePaginationReturnValue<
30
- TReadFromStore extends {
31
- parameters: object;
32
- data: object;
33
- startUpdate?: StartUpdate<object>;
34
- },
29
+ TReadFromStore extends UnknownTReadFromStore,
35
30
  TItem,
36
31
  > =
37
32
  | {
@@ -92,11 +87,7 @@ export type UseConnectionSpecPaginationArgs = {
92
87
  };
93
88
 
94
89
  export function useConnectionSpecPagination<
95
- TReadFromStore extends {
96
- parameters: object;
97
- data: object;
98
- startUpdate?: StartUpdate<object>;
99
- },
90
+ TReadFromStore extends UnknownTReadFromStore,
100
91
  TItem,
101
92
  >(
102
93
  loadableField: LoadableField<
@@ -10,28 +10,23 @@ import {
10
10
  import { useState } from 'react';
11
11
  import { subscribeToAnyChange } from '../core/cache';
12
12
  import { FetchOptions } from '../core/check';
13
- import { FragmentReference } from '../core/FragmentReference';
13
+ import {
14
+ FragmentReference,
15
+ type UnknownTReadFromStore,
16
+ } from '../core/FragmentReference';
14
17
  import { getPromiseState, readPromise } from '../core/PromiseWrapper';
15
18
  import {
16
19
  readButDoNotEvaluate,
17
20
  type WithEncounteredRecords,
18
21
  } from '../core/read';
19
- import {
20
- LoadableField,
21
- type ReaderAst,
22
- type StartUpdate,
23
- } from '../core/reader';
22
+ import { LoadableField, type ReaderAst } from '../core/reader';
24
23
  import { startUpdate } from '../core/startUpdate';
25
24
  import { useIsographEnvironment } from '../react/IsographEnvironmentProvider';
26
25
  import { useSubscribeToMultiple } from '../react/useReadAndSubscribe';
27
26
  import { maybeUnwrapNetworkRequest } from '../react/useResult';
28
27
 
29
28
  export type UseSkipLimitReturnValue<
30
- TReadFromStore extends {
31
- data: object;
32
- parameters: object;
33
- startUpdate?: StartUpdate<object>;
34
- },
29
+ TReadFromStore extends UnknownTReadFromStore,
35
30
  TItem,
36
31
  > =
37
32
  | {
@@ -52,11 +47,7 @@ export type UseSkipLimitReturnValue<
52
47
  };
53
48
 
54
49
  type ArrayFragmentReference<
55
- TReadFromStore extends {
56
- parameters: object;
57
- data: object;
58
- startUpdate?: StartUpdate<object>;
59
- },
50
+ TReadFromStore extends UnknownTReadFromStore,
60
51
  TItem,
61
52
  > = FragmentReference<TReadFromStore, ReadonlyArray<TItem>>;
62
53
 
@@ -89,11 +80,7 @@ export type UseSkipLimitPaginationArgs = {
89
80
 
90
81
  export function useSkipLimitPagination<
91
82
  TItem,
92
- TReadFromStore extends {
93
- parameters: object;
94
- data: object;
95
- startUpdate?: StartUpdate<object>;
96
- },
83
+ TReadFromStore extends UnknownTReadFromStore,
97
84
  >(
98
85
  loadableField: LoadableField<
99
86
  TReadFromStore,
@@ -11,19 +11,15 @@ import {
11
11
  import {
12
12
  ExtractParameters,
13
13
  FragmentReference,
14
+ type UnknownTReadFromStore,
14
15
  } from '../core/FragmentReference';
15
16
  import { ROOT_ID } from '../core/IsographEnvironment';
16
17
  import { maybeMakeNetworkRequest } from '../core/makeNetworkRequest';
17
18
  import { wrapResolvedValue } from '../core/PromiseWrapper';
18
- import type { StartUpdate } from '../core/reader';
19
19
  import { useIsographEnvironment } from './IsographEnvironmentProvider';
20
20
 
21
21
  export type UseImperativeReferenceResult<
22
- TReadFromStore extends {
23
- parameters: object;
24
- data: object;
25
- startUpdate?: StartUpdate<object>;
26
- },
22
+ TReadFromStore extends UnknownTReadFromStore,
27
23
  TClientFieldValue,
28
24
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
29
25
  > = {
@@ -40,11 +36,7 @@ export type UseImperativeReferenceResult<
40
36
  };
41
37
 
42
38
  export function useImperativeReference<
43
- TReadFromStore extends {
44
- parameters: object;
45
- data: object;
46
- startUpdate?: StartUpdate<object>;
47
- },
39
+ TReadFromStore extends UnknownTReadFromStore,
48
40
  TClientFieldValue,
49
41
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
50
42
  >(
@@ -9,17 +9,13 @@ import {
9
9
  import {
10
10
  ExtractParameters,
11
11
  FragmentReference,
12
+ type UnknownTReadFromStore,
12
13
  } from '../core/FragmentReference';
13
14
  import { logMessage } from '../core/logging';
14
- import type { StartUpdate } from '../core/reader';
15
15
  import { useIsographEnvironment } from './IsographEnvironmentProvider';
16
16
 
17
17
  export function useLazyReference<
18
- TReadFromStore extends {
19
- parameters: object;
20
- data: object;
21
- startUpdate?: StartUpdate<object>;
22
- },
18
+ TReadFromStore extends UnknownTReadFromStore,
23
19
  TClientFieldValue,
24
20
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
25
21
  >(