@isograph/react 0.0.0-main-3b6a3c06 → 0.0.0-main-c9bf41eb

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.
@@ -21,7 +21,7 @@ function getOrCreateCachedComponent(environment, root, componentName, readerArti
21
21
  variables,
22
22
  nestedRefetchQueries: resolverRefetchQueries,
23
23
  });
24
- return readerArtifact.resolver(Object.assign({ data }, additionalRuntimeProps));
24
+ return readerArtifact.resolver(data, additionalRuntimeProps);
25
25
  }
26
26
  Component.displayName = `${componentName} (id: ${root}) @component`;
27
27
  return Component;
package/dist/index.d.ts CHANGED
@@ -14,11 +14,15 @@ export type IsographEntrypoint<TReadFromStore extends Object, TResolverProps, TR
14
14
  export type ReaderArtifact<TReadFromStore extends Object, TResolverProps, TResolverResult> = {
15
15
  kind: 'ReaderArtifact';
16
16
  readerAst: ReaderAst<TReadFromStore>;
17
- resolver: (data: TResolverProps) => TResolverResult;
17
+ resolver: (data: TResolverProps, runtimeProps: any) => TResolverResult;
18
18
  variant: ReaderResolverVariant;
19
19
  };
20
20
  export type ReaderAstNode = ReaderScalarField | ReaderLinkedField | ReaderResolverField | ReaderRefetchField | ReaderMutationField;
21
21
  export type ReaderAst<TReadFromStore> = ReaderAstNode[];
22
+ export type ExtractSecondParam<T extends (arg1: any, arg2: any) => any> = T extends (arg1: any, arg2: infer P) => any ? P : never;
23
+ export type Prettify<T> = {
24
+ [K in keyof T]: T[K];
25
+ } & {};
22
26
  export type ReaderScalarField = {
23
27
  kind: 'Scalar';
24
28
  fieldName: string;
package/dist/index.js CHANGED
@@ -218,7 +218,6 @@ function readData(environment, ast, root, variables, nestedRefetchQueries) {
218
218
  const allowedVariables = refetchQuery.allowedVariables;
219
219
  target[field.alias] = field.readerArtifact.resolver(environment,
220
220
  // resolvers for refetch fields take 3 args, and this is not reflected in types
221
- // @ts-expect-error
222
221
  refetchQueryArtifact, Object.assign(Object.assign({}, data.data), filterVariables(variables, allowedVariables)));
223
222
  }
224
223
  break;
@@ -245,9 +244,9 @@ function readData(environment, ast, root, variables, nestedRefetchQueries) {
245
244
  const refetchQuery = nestedRefetchQueries[refetchQueryIndex];
246
245
  const refetchQueryArtifact = refetchQuery.artifact;
247
246
  const allowedVariables = refetchQuery.allowedVariables;
248
- target[field.alias] = field.readerArtifact.resolver(environment,
247
+ target[field.alias] = field.readerArtifact.resolver(environment, refetchQueryArtifact,
249
248
  // @ts-expect-error
250
- refetchQueryArtifact, data.data, filterVariables(variables, allowedVariables));
249
+ data.data, filterVariables(variables, allowedVariables));
251
250
  }
252
251
  break;
253
252
  }
@@ -265,6 +264,7 @@ function readData(environment, ast, root, variables, nestedRefetchQueries) {
265
264
  };
266
265
  }
267
266
  else {
267
+ // @ts-expect-error
268
268
  target[field.alias] = field.readerArtifact.resolver(data.data);
269
269
  }
270
270
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isograph/react",
3
- "version": "0.0.0-main-3b6a3c06",
3
+ "version": "0.0.0-main-c9bf41eb",
4
4
  "description": "Use Isograph with React",
5
5
  "homepage": "https://isograph.dev",
6
6
  "main": "dist/index.js",
@@ -16,8 +16,8 @@
16
16
  "prepack": "yarn run test && yarn run compile"
17
17
  },
18
18
  "dependencies": {
19
- "@isograph/disposable-types": "0.0.0-main-3b6a3c06",
20
- "@isograph/react-disposable-state": "0.0.0-main-3b6a3c06",
19
+ "@isograph/disposable-types": "0.0.0-main-c9bf41eb",
20
+ "@isograph/react-disposable-state": "0.0.0-main-c9bf41eb",
21
21
  "react": "^18.2.0"
22
22
  },
23
23
  "devDependencies": {
@@ -32,10 +32,7 @@ export function getOrCreateCachedComponent(
32
32
  nestedRefetchQueries: resolverRefetchQueries,
33
33
  });
34
34
 
35
- return readerArtifact.resolver({
36
- data,
37
- ...additionalRuntimeProps,
38
- });
35
+ return readerArtifact.resolver(data, additionalRuntimeProps);
39
36
  }
40
37
  Component.displayName = `${componentName} (id: ${root}) @component`;
41
38
  return Component;
package/src/index.tsx CHANGED
@@ -56,6 +56,8 @@ export type IsographEntrypoint<
56
56
  nestedRefetchQueries: RefetchQueryArtifactWrapper[];
57
57
  };
58
58
 
59
+ // TODO this should probably be at least three distinct types, for @component,
60
+ // non-@component and refetch resolvers
59
61
  export type ReaderArtifact<
60
62
  TReadFromStore extends Object,
61
63
  TResolverProps,
@@ -63,7 +65,7 @@ export type ReaderArtifact<
63
65
  > = {
64
66
  kind: 'ReaderArtifact';
65
67
  readerAst: ReaderAst<TReadFromStore>;
66
- resolver: (data: TResolverProps) => TResolverResult;
68
+ resolver: (data: TResolverProps, runtimeProps: any) => TResolverResult;
67
69
  variant: ReaderResolverVariant;
68
70
  };
69
71
 
@@ -77,6 +79,14 @@ export type ReaderAstNode =
77
79
  // @ts-ignore
78
80
  export type ReaderAst<TReadFromStore> = ReaderAstNode[];
79
81
 
82
+ export type ExtractSecondParam<T extends (arg1: any, arg2: any) => any> =
83
+ T extends (arg1: any, arg2: infer P) => any ? P : never;
84
+
85
+ // See https://www.totaltypescript.com/concepts/the-prettify-helper
86
+ export type Prettify<T> = {
87
+ [K in keyof T]: T[K];
88
+ } & {};
89
+
80
90
  export type ReaderScalarField = {
81
91
  kind: 'Scalar';
82
92
  fieldName: string;
@@ -517,8 +527,8 @@ function readData<TReadFromStore>(
517
527
  target[field.alias] = field.readerArtifact.resolver(
518
528
  environment,
519
529
  // resolvers for refetch fields take 3 args, and this is not reflected in types
520
- // @ts-expect-error
521
530
  refetchQueryArtifact,
531
+ // @ts-expect-error
522
532
  {
523
533
  ...data.data,
524
534
  // TODO continue from here
@@ -558,8 +568,8 @@ function readData<TReadFromStore>(
558
568
 
559
569
  target[field.alias] = field.readerArtifact.resolver(
560
570
  environment,
561
- // @ts-expect-error
562
571
  refetchQueryArtifact,
572
+ // @ts-expect-error
563
573
  data.data,
564
574
  filterVariables(variables, allowedVariables),
565
575
  );
@@ -588,6 +598,7 @@ function readData<TReadFromStore>(
588
598
  nestedReason: data,
589
599
  };
590
600
  } else {
601
+ // @ts-expect-error
591
602
  target[field.alias] = field.readerArtifact.resolver(data.data);
592
603
  }
593
604
  } else if (variant.kind === 'Component') {