@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
- return readerWithRefetchQueries.readerArtifact.resolver(firstParameter, undefined);
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-e981e49a",
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-e981e49a",
21
- "@isograph/react-disposable-state": "0.0.0-main-e981e49a",
22
- "@isograph/reference-counted-pointer": "0.0.0-main-e981e49a"
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<TItem> = FragmentReference<
37
- any,
38
- ReadonlyArray<TItem>
39
- >;
36
+ type ArrayFragmentReference<
37
+ TReadFromStore extends Object,
38
+ TItem,
39
+ > = FragmentReference<TReadFromStore, ReadonlyArray<TItem>>;
40
40
 
41
- type LoadedFragmentReferences<TItem> = ReadonlyArray<
42
- ItemCleanupPair<ReferenceCountedPointer<ArrayFragmentReference<TItem>>>
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<LoadedFragmentReferences<TItem>>();
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<ReferenceCountedPointer<ArrayFragmentReference<TItem>>>
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
- return readerWithRefetchQueries.readerArtifact.resolver(
116
- firstParameter,
117
- undefined,
118
- ) as ReadonlyArray<any>;
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<ArrayFragmentReference<TItem>>
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
- return function identity<TClientFieldReturn>(
88
- clientFieldOrEntrypoint: (param: any) => TClientFieldReturn,
89
- ): (param: any) => TClientFieldReturn {
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
  }