@isograph/react 0.0.0-main-e524ebe1 → 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 (67) 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 +9 -14
  5. package/dist/core/IsographEnvironment.d.ts.map +1 -1
  6. package/dist/core/PromiseWrapper.d.ts +2 -3
  7. package/dist/core/PromiseWrapper.d.ts.map +1 -1
  8. package/dist/core/PromiseWrapper.js +5 -4
  9. package/dist/core/cache.d.ts +7 -20
  10. package/dist/core/cache.d.ts.map +1 -1
  11. package/dist/core/entrypoint.d.ts +6 -21
  12. package/dist/core/entrypoint.d.ts.map +1 -1
  13. package/dist/core/garbageCollection.d.ts +1 -2
  14. package/dist/core/garbageCollection.d.ts.map +1 -1
  15. package/dist/core/makeNetworkRequest.d.ts +3 -12
  16. package/dist/core/makeNetworkRequest.d.ts.map +1 -1
  17. package/dist/core/read.d.ts +2 -7
  18. package/dist/core/read.d.ts.map +1 -1
  19. package/dist/core/reader.d.ts +7 -28
  20. package/dist/core/reader.d.ts.map +1 -1
  21. package/dist/core/startUpdate.d.ts +2 -7
  22. package/dist/core/startUpdate.d.ts.map +1 -1
  23. package/dist/index.d.ts +16 -16
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -1
  26. package/dist/loadable-hooks/useClientSideDefer.d.ts +4 -12
  27. package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
  28. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +7 -16
  29. package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
  30. package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts +1 -2
  31. package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts.map +1 -1
  32. package/dist/loadable-hooks/useImperativeLoadableField.d.ts +1 -2
  33. package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +1 -1
  34. package/dist/loadable-hooks/useSkipLimitPagination.d.ts +5 -14
  35. package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
  36. package/dist/react/FragmentReader.d.ts +1 -2
  37. package/dist/react/FragmentReader.d.ts.map +1 -1
  38. package/dist/react/useImperativeReference.d.ts +3 -13
  39. package/dist/react/useImperativeReference.d.ts.map +1 -1
  40. package/dist/react/useLazyReference.d.ts +2 -7
  41. package/dist/react/useLazyReference.d.ts.map +1 -1
  42. package/dist/react/useReadAndSubscribe.d.ts +4 -12
  43. package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
  44. package/dist/react/useResult.d.ts +2 -7
  45. package/dist/react/useResult.d.ts.map +1 -1
  46. package/package.json +4 -4
  47. package/src/core/FragmentReference.ts +7 -5
  48. package/src/core/IsographEnvironment.ts +23 -24
  49. package/src/core/PromiseWrapper.ts +2 -2
  50. package/src/core/cache.ts +7 -25
  51. package/src/core/entrypoint.ts +6 -21
  52. package/src/core/garbageCollection.ts +1 -1
  53. package/src/core/makeNetworkRequest.ts +8 -17
  54. package/src/core/read.ts +3 -6
  55. package/src/core/reader.ts +7 -26
  56. package/src/core/startUpdate.ts +6 -9
  57. package/src/index.ts +76 -8
  58. package/src/loadable-hooks/useClientSideDefer.ts +5 -16
  59. package/src/loadable-hooks/useConnectionSpecPagination.ts +11 -20
  60. package/src/loadable-hooks/useImperativeExposedMutationField.ts +1 -1
  61. package/src/loadable-hooks/useImperativeLoadableField.ts +1 -1
  62. package/src/loadable-hooks/useSkipLimitPagination.ts +10 -23
  63. package/src/react/FragmentReader.tsx +1 -1
  64. package/src/react/useImperativeReference.ts +4 -12
  65. package/src/react/useLazyReference.ts +2 -6
  66. package/src/react/useReadAndSubscribe.ts +4 -11
  67. package/src/react/useResult.ts +5 -7
@@ -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>;
@@ -167,7 +152,7 @@ export type ReaderLoadableField = {
167
152
  | IsographEntrypointLoader<any, any>;
168
153
  };
169
154
 
170
- type StableId = string;
155
+ export type StableId = string;
171
156
  /// Why is LoadableField the way it is? Let's work backwards.
172
157
  ///
173
158
  /// We ultimately need a stable id (for deduplication) and a way to produce a
@@ -178,11 +163,7 @@ 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
@@ -3,6 +3,7 @@ export {
3
3
  unretainQuery,
4
4
  type RetainedQuery,
5
5
  garbageCollectEnvironment,
6
+ type DidUnretainSomeQuery,
6
7
  } from './core/garbageCollection';
7
8
  export {
8
9
  type PromiseWrapper,
@@ -10,8 +11,20 @@ export {
10
11
  getPromiseState,
11
12
  wrapResolvedValue,
12
13
  wrapPromise,
14
+ type PromiseState,
15
+ type Result,
16
+ type AnyError,
17
+ type NotSet,
18
+ NOT_SET,
13
19
  } from './core/PromiseWrapper';
14
- export { subscribe, normalizeData } from './core/cache';
20
+ export {
21
+ subscribe,
22
+ normalizeData,
23
+ type NetworkResponseObject,
24
+ type NetworkResponseValue,
25
+ type NetworkResponseScalarValue,
26
+ type EncounteredIds,
27
+ } from './core/cache';
15
28
  export { makeNetworkRequest } from './core/makeNetworkRequest';
16
29
  export {
17
30
  ROOT_ID,
@@ -20,10 +33,21 @@ export {
20
33
  type IsographEnvironment,
21
34
  type IsographNetworkFunction,
22
35
  type IsographStore,
36
+ type MissingFieldHandler,
23
37
  type Link,
24
38
  type StoreRecord,
39
+ type CacheMap,
25
40
  createIsographEnvironment,
26
41
  createIsographStore,
42
+ type ComponentCache,
43
+ type Subscriptions,
44
+ type Subscription,
45
+ type TypeName,
46
+ type FragmentSubscription,
47
+ type AnyChangesToRecordSubscription,
48
+ type AnyRecordSubscription,
49
+ type ComponentOrFieldName,
50
+ type StringifiedArgs,
27
51
  } from './core/IsographEnvironment';
28
52
  export {
29
53
  type EagerReaderArtifact,
@@ -36,11 +60,17 @@ export {
36
60
  type ReaderScalarField,
37
61
  type TopLevelReaderArtifact,
38
62
  type LoadableField,
63
+ type StableId,
39
64
  type ResolverFirstParameter,
65
+ type ReaderImperativelyLoadedField,
66
+ type ReaderLoadableField,
67
+ type ReaderLinkeField,
68
+ type StartUpdate,
40
69
  } from './core/reader';
41
70
  export {
42
71
  type NormalizationAst,
43
72
  type NormalizationAstNode,
73
+ type NormalizationAstNodes,
44
74
  type NormalizationAstLoader,
45
75
  type NormalizationLinkedField,
46
76
  type NormalizationScalarField,
@@ -52,10 +82,15 @@ export {
52
82
  type ExtractReadFromStore,
53
83
  type ExtractResolverResult,
54
84
  type NetworkRequestInfo,
85
+ type NormalizationInlineFragment,
86
+ type ReaderWithRefetchQueries,
87
+ type IsographEntrypointLoader,
55
88
  } from './core/entrypoint';
56
89
  export {
57
90
  readButDoNotEvaluate,
91
+ type WithEncounteredRecords,
58
92
  type NetworkRequestReaderOptions,
93
+ type ReadDataResult,
59
94
  } from './core/read';
60
95
  export {
61
96
  type ExtractSecondParam,
@@ -70,23 +105,40 @@ export {
70
105
  type Variables,
71
106
  type ExtractParameters,
72
107
  type ExtractData,
108
+ type UnknownTReadFromStore,
73
109
  stableIdForFragmentReference,
110
+ type ExtractStartUpdate,
111
+ type VariableValue,
74
112
  } from './core/FragmentReference';
75
113
  export {
76
114
  type LogMessage,
77
115
  type LogFunction,
116
+ type WrappedLogFunction,
78
117
  logMessage,
79
118
  registerLogger,
80
119
  } from './core/logging';
81
- export { check, CheckResult, FetchOptions, ShouldFetch } from './core/check';
120
+ export {
121
+ check,
122
+ type CheckResult,
123
+ type FetchOptions,
124
+ type RequiredFetchOptions,
125
+ type ShouldFetch,
126
+ type RequiredShouldFetch,
127
+ } from './core/check';
82
128
 
83
129
  export {
84
130
  IsographEnvironmentProvider,
85
131
  useIsographEnvironment,
86
132
  type IsographEnvironmentProviderProps,
87
133
  } from './react/IsographEnvironmentProvider';
88
- export { useImperativeReference } from './react/useImperativeReference';
89
- export { FragmentReader } from './react/FragmentReader';
134
+ export {
135
+ useImperativeReference,
136
+ type UseImperativeReferenceResult,
137
+ } from './react/useImperativeReference';
138
+ export {
139
+ FragmentReader,
140
+ type IsExactlyIntrinsicAttributes,
141
+ } from './react/FragmentReader';
90
142
  export { useResult } from './react/useResult';
91
143
  export {
92
144
  useReadAndSubscribe,
@@ -97,7 +149,23 @@ export { useRerenderOnChange } from './react/useRerenderOnChange';
97
149
  export { RenderAfterCommit__DO_NOT_USE } from './react/RenderAfterCommit__DO_NOT_USE';
98
150
 
99
151
  export { useClientSideDefer } from './loadable-hooks/useClientSideDefer';
100
- export { useImperativeExposedMutationField } from './loadable-hooks/useImperativeExposedMutationField';
101
- export { useSkipLimitPagination } from './loadable-hooks/useSkipLimitPagination';
102
- export { useConnectionSpecPagination } from './loadable-hooks/useConnectionSpecPagination';
103
- export { useImperativeLoadableField } from './loadable-hooks/useImperativeLoadableField';
152
+ export {
153
+ useImperativeExposedMutationField,
154
+ type UseImperativeLoadableFieldReturn as UseImperativeExposedMutationFieldReturn,
155
+ } from './loadable-hooks/useImperativeExposedMutationField';
156
+ export {
157
+ useSkipLimitPagination,
158
+ type UseSkipLimitPaginationArgs,
159
+ type UseSkipLimitReturnValue,
160
+ } from './loadable-hooks/useSkipLimitPagination';
161
+ export {
162
+ useConnectionSpecPagination,
163
+ type Connection,
164
+ type PageInfo,
165
+ type UseConnectionSpecPaginationArgs,
166
+ type UsePaginationReturnValue,
167
+ } from './loadable-hooks/useConnectionSpecPagination';
168
+ export {
169
+ useImperativeLoadableField,
170
+ type UseImperativeLoadableFieldReturn,
171
+ } from './loadable-hooks/useImperativeLoadableField';
@@ -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
- type UsePaginationReturnValue<
30
- TReadFromStore extends {
31
- parameters: object;
32
- data: object;
33
- startUpdate?: StartUpdate<object>;
34
- },
28
+ export type UsePaginationReturnValue<
29
+ TReadFromStore extends UnknownTReadFromStore,
35
30
  TItem,
36
31
  > =
37
32
  | {
@@ -71,12 +66,12 @@ function flatten<T>(arr: ReadonlyArray<ReadonlyArray<T>>): ReadonlyArray<T> {
71
66
  return outArray;
72
67
  }
73
68
 
74
- type PageInfo = {
69
+ export type PageInfo = {
75
70
  readonly hasNextPage: boolean;
76
71
  readonly endCursor: string | null;
77
72
  };
78
73
 
79
- type Connection<T> = {
74
+ export type Connection<T> = {
80
75
  readonly edges: ReadonlyArray<T> | null;
81
76
  readonly pageInfo: PageInfo;
82
77
  };
@@ -86,17 +81,13 @@ type NonNullConnection<T> = {
86
81
  readonly pageInfo: PageInfo;
87
82
  };
88
83
 
89
- type UseConnectionSpecPaginationArgs = {
84
+ export type UseConnectionSpecPaginationArgs = {
90
85
  first: number;
91
86
  after: string | null;
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<
@@ -1,4 +1,4 @@
1
- type UseImperativeLoadableFieldReturn<TArgs> = {
1
+ export type UseImperativeLoadableFieldReturn<TArgs> = {
2
2
  loadField: (args: TArgs) => void;
3
3
  };
4
4
 
@@ -9,7 +9,7 @@ import {
9
9
  } from '../core/FragmentReference';
10
10
  import { LoadableField } from '../core/reader';
11
11
 
12
- type UseImperativeLoadableFieldReturn<
12
+ export type UseImperativeLoadableFieldReturn<
13
13
  TReadFromStore extends { data: object; parameters: object },
14
14
  TResult,
15
15
  TProvidedArgs extends object,
@@ -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
- type UseSkipLimitReturnValue<
30
- TReadFromStore extends {
31
- data: object;
32
- parameters: object;
33
- startUpdate?: StartUpdate<object>;
34
- },
28
+ export type UseSkipLimitReturnValue<
29
+ TReadFromStore extends UnknownTReadFromStore,
35
30
  TItem,
36
31
  > =
37
32
  | {
@@ -52,11 +47,7 @@ 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
 
@@ -82,18 +73,14 @@ function flatten<T>(arr: ReadonlyArray<ReadonlyArray<T>>): ReadonlyArray<T> {
82
73
  return outArray;
83
74
  }
84
75
 
85
- type UseSkipLimitPaginationArgs = {
76
+ export type UseSkipLimitPaginationArgs = {
86
77
  skip: number;
87
78
  limit: number;
88
79
  };
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,
@@ -4,7 +4,7 @@ import { FragmentReference } from '../core/FragmentReference';
4
4
  import { NetworkRequestReaderOptions } from '../core/read';
5
5
  import { useResult } from './useResult';
6
6
 
7
- type IsExactlyIntrinsicAttributes<T> = T extends JSX.IntrinsicAttributes
7
+ export type IsExactlyIntrinsicAttributes<T> = T extends JSX.IntrinsicAttributes
8
8
  ? JSX.IntrinsicAttributes extends T
9
9
  ? true
10
10
  : false
@@ -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
- type UseImperativeReferenceResult<
22
- TReadFromStore extends {
23
- parameters: object;
24
- data: object;
25
- startUpdate?: StartUpdate<object>;
26
- },
21
+ export type UseImperativeReferenceResult<
22
+ TReadFromStore extends UnknownTReadFromStore,
27
23
  TClientFieldValue,
28
24
  TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
29
25
  > = {
@@ -40,11 +36,7 @@ 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
  >(
@@ -4,13 +4,14 @@ import {
4
4
  ExtractData,
5
5
  FragmentReference,
6
6
  stableIdForFragmentReference,
7
+ type UnknownTReadFromStore,
7
8
  } from '../core/FragmentReference';
8
9
  import {
9
10
  NetworkRequestReaderOptions,
10
11
  readButDoNotEvaluate,
11
12
  WithEncounteredRecords,
12
13
  } from '../core/read';
13
- import type { ReaderAst, StartUpdate } from '../core/reader';
14
+ import type { ReaderAst } from '../core/reader';
14
15
  import { useIsographEnvironment } from './IsographEnvironmentProvider';
15
16
  import { useRerenderOnChange } from './useRerenderOnChange';
16
17
 
@@ -18,11 +19,7 @@ import { useRerenderOnChange } from './useRerenderOnChange';
18
19
  * Read the data from a fragment reference and subscribe to updates.
19
20
  */
20
21
  export function useReadAndSubscribe<
21
- TReadFromStore extends {
22
- parameters: object;
23
- data: object;
24
- startUpdate?: StartUpdate<object>;
25
- },
22
+ TReadFromStore extends UnknownTReadFromStore,
26
23
  >(
27
24
  fragmentReference: FragmentReference<TReadFromStore, any>,
28
25
  networkRequestOptions: NetworkRequestReaderOptions,
@@ -42,11 +39,7 @@ export function useReadAndSubscribe<
42
39
  }
43
40
 
44
41
  export function useSubscribeToMultiple<
45
- TReadFromStore extends {
46
- parameters: object;
47
- data: object;
48
- startUpdate?: StartUpdate<object>;
49
- },
42
+ TReadFromStore extends UnknownTReadFromStore,
50
43
  >(
51
44
  items: ReadonlyArray<{
52
45
  records: WithEncounteredRecords<TReadFromStore>;
@@ -1,5 +1,8 @@
1
1
  import { getOrCreateCachedComponent } from '../core/componentCache';
2
- import { FragmentReference } from '../core/FragmentReference';
2
+ import {
3
+ FragmentReference,
4
+ type UnknownTReadFromStore,
5
+ } from '../core/FragmentReference';
3
6
  import {
4
7
  getPromiseState,
5
8
  PromiseWrapper,
@@ -9,17 +12,12 @@ import {
9
12
  getNetworkRequestOptionsWithDefaults,
10
13
  NetworkRequestReaderOptions,
11
14
  } from '../core/read';
12
- import type { StartUpdate } from '../core/reader';
13
15
  import { startUpdate } from '../core/startUpdate';
14
16
  import { useIsographEnvironment } from '../react/IsographEnvironmentProvider';
15
17
  import { useReadAndSubscribe } from './useReadAndSubscribe';
16
18
 
17
19
  export function useResult<
18
- TReadFromStore extends {
19
- parameters: object;
20
- data: object;
21
- startUpdate?: StartUpdate<object>;
22
- },
20
+ TReadFromStore extends UnknownTReadFromStore,
23
21
  TClientFieldValue,
24
22
  >(
25
23
  fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>,