@isograph/react 0.0.0-main-01f29812 → 0.0.0-main-7f010fe1

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.
package/dist/cache.js CHANGED
@@ -211,7 +211,8 @@ function getStoreKeyChunkForArgumentValue(argumentValue, variables) {
211
211
  }
212
212
  default: {
213
213
  // TODO configure eslint to allow unused vars starting with _
214
- let _ = argumentValue;
214
+ // @ts-expect-error
215
+ const _ = argumentValue;
215
216
  throw new Error('Unexpected case');
216
217
  }
217
218
  }
@@ -237,6 +238,7 @@ function getNetworkResponseKey(astNode) {
237
238
  break;
238
239
  }
239
240
  default: {
241
+ // @ts-expect-error
240
242
  let _ = argumentValue;
241
243
  throw new Error('Unexpected case');
242
244
  }
package/dist/index.d.ts CHANGED
@@ -88,20 +88,23 @@ export type ArgumentValue = {
88
88
  kind: 'Literal';
89
89
  value: any;
90
90
  };
91
+ type Variable = any;
91
92
  export type FragmentReference<TReadFromStore extends Object, TResolverProps, TResolverResult> = {
92
93
  kind: 'FragmentReference';
93
94
  readerArtifact: ReaderArtifact<TReadFromStore, TResolverProps, TResolverResult>;
94
95
  root: DataId;
95
96
  variables: {
96
- [index: string]: string;
97
+ [index: string]: Variable;
97
98
  } | null;
98
99
  nestedRefetchQueries: RefetchQueryArtifactWrapper[];
99
100
  };
100
- type ExtractTReadFromStore<Type> = Type extends IsographEntrypoint<infer X, any, any> ? X : never;
101
+ type ExtractReadFromStore<Type> = Type extends IsographEntrypoint<infer X, any, any> ? X : never;
101
102
  type ExtractResolverProps<Type> = Type extends IsographEntrypoint<any, infer X, any> ? X : never;
102
103
  type ExtractResolverResult<Type> = Type extends IsographEntrypoint<any, any, infer X> ? X : never;
103
- export declare function useLazyReference<TEntrypoint>(entrypoint: TEntrypoint | ((_: any) => any), variables: object): {
104
- queryReference: FragmentReference<ExtractTReadFromStore<TEntrypoint>, ExtractResolverProps<TEntrypoint>, ExtractResolverResult<TEntrypoint>>;
104
+ export declare function useLazyReference<TEntrypoint>(entrypoint: TEntrypoint | ((_: any) => any), variables: {
105
+ [key: string]: Variable;
106
+ }): {
107
+ queryReference: FragmentReference<ExtractReadFromStore<TEntrypoint>, ExtractResolverProps<TEntrypoint>, ExtractResolverResult<TEntrypoint>>;
105
108
  };
106
109
  export declare function useRead<TReadFromStore extends Object, TResolverProps, TResolverResult>(fragmentReference: FragmentReference<TReadFromStore, TResolverProps, TResolverResult>): TResolverResult;
107
110
  export declare function read<TReadFromStore extends Object, TResolverProps, TResolverResult>(environment: IsographEnvironment, fragmentReference: FragmentReference<TReadFromStore, TResolverProps, TResolverResult>): TResolverResult;
package/dist/index.js CHANGED
@@ -28,7 +28,6 @@ function assertIsEntrypoint(value) {
28
28
  function useLazyReference(entrypoint, variables) {
29
29
  const environment = (0, IsographEnvironment_1.useIsographEnvironment)();
30
30
  assertIsEntrypoint(entrypoint);
31
- // Typechecking fails here... TODO investigate
32
31
  const cache = (0, cache_1.getOrCreateCacheForArtifact)(environment, entrypoint, variables);
33
32
  // TODO add comment explaining why we never use this value
34
33
  // @ts-ignore
@@ -58,6 +57,7 @@ function read(environment, fragmentReference) {
58
57
  throw (0, cache_1.onNextChange)(environment);
59
58
  }
60
59
  else {
60
+ // @ts-expect-error This not properly typed yet
61
61
  return fragmentReference.readerArtifact.resolver(data.data);
62
62
  }
63
63
  }
@@ -207,7 +207,10 @@ function readData(environment, ast, root, variables, nestedRefetchQueries) {
207
207
  const refetchQuery = nestedRefetchQueries[refetchQueryIndex];
208
208
  const refetchQueryArtifact = refetchQuery.artifact;
209
209
  const allowedVariables = refetchQuery.allowedVariables;
210
- target[field.alias] = field.readerArtifact.resolver(environment, refetchQueryArtifact, Object.assign(Object.assign({}, data.data), filterVariables(variables, allowedVariables)));
210
+ target[field.alias] = field.readerArtifact.resolver(environment,
211
+ // resolvers for refetch fields take 3 args, and this is not reflected in types
212
+ // @ts-expect-error
213
+ refetchQueryArtifact, Object.assign(Object.assign({}, data.data), filterVariables(variables, allowedVariables)));
211
214
  }
212
215
  break;
213
216
  }
@@ -233,7 +236,9 @@ function readData(environment, ast, root, variables, nestedRefetchQueries) {
233
236
  const refetchQuery = nestedRefetchQueries[refetchQueryIndex];
234
237
  const refetchQueryArtifact = refetchQuery.artifact;
235
238
  const allowedVariables = refetchQuery.allowedVariables;
236
- target[field.alias] = field.readerArtifact.resolver(environment, refetchQueryArtifact, data.data, filterVariables(variables, allowedVariables));
239
+ target[field.alias] = field.readerArtifact.resolver(environment,
240
+ // @ts-expect-error
241
+ refetchQueryArtifact, data.data, filterVariables(variables, allowedVariables));
237
242
  }
238
243
  break;
239
244
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@isograph/react",
3
- "version": "0.0.0-main-01f29812",
3
+ "version": "0.0.0-main-7f010fe1",
4
4
  "description": "Use Isograph with React",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "author": "Isograph Labs",
8
8
  "license": "MIT",
9
9
  "scripts": {
10
- "compile": "rm -rf dist/* && (tsc -p tsconfig.pkg.json || exit 0)",
10
+ "compile": "rm -rf dist/* && tsc -p tsconfig.pkg.json",
11
11
  "compile-watch": "tsc -p tsconfig.pkg.json --watch",
12
12
  "test": "echo no tests yet",
13
13
  "test-watch": "vitest watch",
@@ -15,8 +15,8 @@
15
15
  "prepack": "yarn run test && yarn run compile"
16
16
  },
17
17
  "dependencies": {
18
- "@isograph/disposable-types": "0.0.0-main-01f29812",
19
- "@isograph/react-disposable-state": "0.0.0-main-01f29812",
18
+ "@isograph/disposable-types": "0.0.0-main-7f010fe1",
19
+ "@isograph/react-disposable-state": "0.0.0-main-7f010fe1",
20
20
  "react": "^18.2.0"
21
21
  },
22
22
  "devDependencies": {
package/src/cache.tsx CHANGED
@@ -402,7 +402,8 @@ function getStoreKeyChunkForArgumentValue(
402
402
  }
403
403
  default: {
404
404
  // TODO configure eslint to allow unused vars starting with _
405
- let _: never = argumentValue;
405
+ // @ts-expect-error
406
+ const _: never = argumentValue;
406
407
  throw new Error('Unexpected case');
407
408
  }
408
409
  }
@@ -435,6 +436,7 @@ function getNetworkResponseKey(
435
436
  break;
436
437
  }
437
438
  default: {
439
+ // @ts-expect-error
438
440
  let _: never = argumentValue;
439
441
  throw new Error('Unexpected case');
440
442
  }
@@ -23,7 +23,7 @@ export function getOrCreateCachedComponent(
23
23
  byArgs[stringifiedArgs] =
24
24
  byArgs[stringifiedArgs] ??
25
25
  (() => {
26
- function Component(additionalRuntimeProps) {
26
+ function Component(additionalRuntimeProps: { [key: string]: any }) {
27
27
  const data = readButDoNotEvaluate(environment, {
28
28
  kind: 'FragmentReference',
29
29
  readerArtifact: readerArtifact,
package/src/index.tsx CHANGED
@@ -164,6 +164,9 @@ export type ArgumentValue =
164
164
  value: any;
165
165
  };
166
166
 
167
+ // TODO type this better
168
+ type Variable = any;
169
+
167
170
  export type FragmentReference<
168
171
  TReadFromStore extends Object,
169
172
  TResolverProps,
@@ -176,7 +179,7 @@ export type FragmentReference<
176
179
  TResolverResult
177
180
  >;
178
181
  root: DataId;
179
- variables: { [index: string]: string } | null;
182
+ variables: { [index: string]: Variable } | null;
180
183
  // TODO: We should instead have ReaderAst<TResolverProps>
181
184
  nestedRefetchQueries: RefetchQueryArtifactWrapper[];
182
185
  };
@@ -200,7 +203,7 @@ function assertIsEntrypoint<
200
203
  if (typeof value === 'function') throw new Error('Not a string');
201
204
  }
202
205
 
203
- type ExtractTReadFromStore<Type> =
206
+ type ExtractReadFromStore<Type> =
204
207
  Type extends IsographEntrypoint<infer X, any, any> ? X : never;
205
208
  type ExtractResolverProps<Type> =
206
209
  Type extends IsographEntrypoint<any, infer X, any> ? X : never;
@@ -217,17 +220,20 @@ export function useLazyReference<TEntrypoint>(
217
220
  // iso`...`. At runtime, we confirm that the passed-in `iso` literal is actually
218
221
  // an entrypoint.
219
222
  | ((_: any) => any),
220
- variables: object,
223
+ variables: { [key: string]: Variable },
221
224
  ): {
222
225
  queryReference: FragmentReference<
223
- ExtractTReadFromStore<TEntrypoint>,
226
+ ExtractReadFromStore<TEntrypoint>,
224
227
  ExtractResolverProps<TEntrypoint>,
225
228
  ExtractResolverResult<TEntrypoint>
226
229
  >;
227
230
  } {
228
231
  const environment = useIsographEnvironment();
229
- assertIsEntrypoint(entrypoint);
230
- // Typechecking fails here... TODO investigate
232
+ assertIsEntrypoint<
233
+ ExtractReadFromStore<TEntrypoint>,
234
+ ExtractResolverProps<TEntrypoint>,
235
+ ExtractResolverResult<TEntrypoint>
236
+ >(entrypoint);
231
237
  const cache = getOrCreateCacheForArtifact<ExtractResolverResult<TEntrypoint>>(
232
238
  environment,
233
239
  entrypoint,
@@ -237,7 +243,9 @@ export function useLazyReference<TEntrypoint>(
237
243
  // TODO add comment explaining why we never use this value
238
244
  // @ts-ignore
239
245
  const data =
240
- useLazyDisposableState<PromiseWrapper<TResolverResult>>(cache).state;
246
+ useLazyDisposableState<PromiseWrapper<ExtractResolverResult<TEntrypoint>>>(
247
+ cache,
248
+ ).state;
241
249
 
242
250
  return {
243
251
  queryReference: {
@@ -289,6 +297,7 @@ export function read<
289
297
  if (data.kind === 'MissingData') {
290
298
  throw onNextChange(environment);
291
299
  } else {
300
+ // @ts-expect-error This not properly typed yet
292
301
  return fragmentReference.readerArtifact.resolver(data.data);
293
302
  }
294
303
  } else if (variant.kind === 'Component') {
@@ -496,6 +505,8 @@ function readData<TReadFromStore>(
496
505
 
497
506
  target[field.alias] = field.readerArtifact.resolver(
498
507
  environment,
508
+ // resolvers for refetch fields take 3 args, and this is not reflected in types
509
+ // @ts-expect-error
499
510
  refetchQueryArtifact,
500
511
  {
501
512
  ...data.data,
@@ -536,6 +547,7 @@ function readData<TReadFromStore>(
536
547
 
537
548
  target[field.alias] = field.readerArtifact.resolver(
538
549
  environment,
550
+ // @ts-expect-error
539
551
  refetchQueryArtifact,
540
552
  data.data,
541
553
  filterVariables(variables, allowedVariables),