@isograph/react 0.0.0-main-e981e49a → 0.0.0-main-5a08f41e
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.
@@ -19,5 +19,5 @@ type UseSkipLimitReturnValue<TArgs, TItem> = {
|
|
19
19
|
export declare function useSkipLimitPagination<TArgs extends {
|
20
20
|
skip: number | void | null;
|
21
21
|
limit: number | void | null;
|
22
|
-
}, TItem>(loadableField: LoadableField<TArgs, Array<TItem>>): UseSkipLimitReturnValue<TArgs, TItem>;
|
22
|
+
}, TItem, TReadFromStore extends Object>(loadableField: LoadableField<TArgs, Array<TItem>>): UseSkipLimitReturnValue<TArgs, TItem>;
|
23
23
|
export {};
|
@@ -48,7 +48,10 @@ function useSkipLimitPagination(loadableField) {
|
|
48
48
|
data: data.item,
|
49
49
|
parameters: fragmentReference.variables,
|
50
50
|
};
|
51
|
-
|
51
|
+
if (readerWithRefetchQueries.readerArtifact.kind !== 'EagerReaderArtifact') {
|
52
|
+
throw new Error(`@loadable field of kind "${readerWithRefetchQueries.readerArtifact.kind}" is not supported by useSkipLimitPagination`);
|
53
|
+
}
|
54
|
+
return readerWithRefetchQueries.readerArtifact.resolver(firstParameter);
|
52
55
|
});
|
53
56
|
const items = flatten(results);
|
54
57
|
return items;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@isograph/react",
|
3
|
-
"version": "0.0.0-main-
|
3
|
+
"version": "0.0.0-main-5a08f41e",
|
4
4
|
"description": "Use Isograph with React",
|
5
5
|
"homepage": "https://isograph.dev",
|
6
6
|
"main": "dist/index.js",
|
@@ -17,9 +17,9 @@
|
|
17
17
|
"tsc": "tsc"
|
18
18
|
},
|
19
19
|
"dependencies": {
|
20
|
-
"@isograph/disposable-types": "0.0.0-main-
|
21
|
-
"@isograph/react-disposable-state": "0.0.0-main-
|
22
|
-
"@isograph/reference-counted-pointer": "0.0.0-main-
|
20
|
+
"@isograph/disposable-types": "0.0.0-main-5a08f41e",
|
21
|
+
"@isograph/react-disposable-state": "0.0.0-main-5a08f41e",
|
22
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-5a08f41e"
|
23
23
|
},
|
24
24
|
"peerDependencies": {
|
25
25
|
"react": "18.2.0"
|
@@ -33,13 +33,18 @@ type UseSkipLimitReturnValue<TArgs, TItem> =
|
|
33
33
|
readonly pendingFragment: FragmentReference<any, ReadonlyArray<TItem>>;
|
34
34
|
};
|
35
35
|
|
36
|
-
type ArrayFragmentReference<
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
type ArrayFragmentReference<
|
37
|
+
TReadFromStore extends Object,
|
38
|
+
TItem,
|
39
|
+
> = FragmentReference<TReadFromStore, ReadonlyArray<TItem>>;
|
40
40
|
|
41
|
-
type LoadedFragmentReferences<
|
42
|
-
|
41
|
+
type LoadedFragmentReferences<
|
42
|
+
TReadFromStore extends Object,
|
43
|
+
TItem,
|
44
|
+
> = ReadonlyArray<
|
45
|
+
ItemCleanupPair<
|
46
|
+
ReferenceCountedPointer<ArrayFragmentReference<TReadFromStore, TItem>>
|
47
|
+
>
|
43
48
|
>;
|
44
49
|
|
45
50
|
function flatten<T>(arr: ReadonlyArray<ReadonlyArray<T>>): ReadonlyArray<T> {
|
@@ -63,6 +68,7 @@ export function useSkipLimitPagination<
|
|
63
68
|
limit: number | void | null;
|
64
69
|
},
|
65
70
|
TItem,
|
71
|
+
TReadFromStore extends Object,
|
66
72
|
>(
|
67
73
|
loadableField: LoadableField<TArgs, Array<TItem>>,
|
68
74
|
): UseSkipLimitReturnValue<TArgs, TItem> {
|
@@ -71,7 +77,9 @@ export function useSkipLimitPagination<
|
|
71
77
|
throwOnNetworkError: true,
|
72
78
|
};
|
73
79
|
const { state, setState } =
|
74
|
-
useUpdatableDisposableState<
|
80
|
+
useUpdatableDisposableState<
|
81
|
+
LoadedFragmentReferences<TReadFromStore, TItem>
|
82
|
+
>();
|
75
83
|
|
76
84
|
const environment = useIsographEnvironment();
|
77
85
|
|
@@ -79,7 +87,9 @@ export function useSkipLimitPagination<
|
|
79
87
|
// as parameters (or recreate networkRequestOptions)
|
80
88
|
function readCompletedFragmentReferences(
|
81
89
|
completedReferences: ReadonlyArray<
|
82
|
-
ItemCleanupPair<
|
90
|
+
ItemCleanupPair<
|
91
|
+
ReferenceCountedPointer<ArrayFragmentReference<TReadFromStore, TItem>>
|
92
|
+
>
|
83
93
|
>,
|
84
94
|
) {
|
85
95
|
// In general, this will not suspend. But it could, if there is missing data.
|
@@ -112,10 +122,15 @@ export function useSkipLimitPagination<
|
|
112
122
|
parameters: fragmentReference.variables,
|
113
123
|
};
|
114
124
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
125
|
+
if (
|
126
|
+
readerWithRefetchQueries.readerArtifact.kind !== 'EagerReaderArtifact'
|
127
|
+
) {
|
128
|
+
throw new Error(
|
129
|
+
`@loadable field of kind "${readerWithRefetchQueries.readerArtifact.kind}" is not supported by useSkipLimitPagination`,
|
130
|
+
);
|
131
|
+
}
|
132
|
+
|
133
|
+
return readerWithRefetchQueries.readerArtifact.resolver(firstParameter);
|
119
134
|
});
|
120
135
|
|
121
136
|
const items = flatten(results);
|
@@ -147,7 +162,9 @@ export function useSkipLimitPagination<
|
|
147
162
|
const totalItemCleanupPair: ItemCleanupPair<
|
148
163
|
ReadonlyArray<
|
149
164
|
ItemCleanupPair<
|
150
|
-
ReferenceCountedPointer<
|
165
|
+
ReferenceCountedPointer<
|
166
|
+
ArrayFragmentReference<TReadFromStore, TItem>
|
167
|
+
>
|
151
168
|
>
|
152
169
|
>
|
153
170
|
> = [
|
@@ -84,9 +84,7 @@ export function iso(_isographLiteralText: string):
|
|
84
84
|
| IdentityWithParamComponent<any>
|
85
85
|
| IsographEntrypoint<any, any>
|
86
86
|
{
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
return clientFieldOrEntrypoint;
|
91
|
-
};
|
87
|
+
throw new Error('iso: Unexpected invocation at runtime. Either the Babel transform ' +
|
88
|
+
'was not set up, or it failed to identify this call site. Make sure it ' +
|
89
|
+
'is being used verbatim as `iso`.');
|
92
90
|
}
|