@isograph/react 0.0.0-main-2f4311e8 → 0.0.0-main-3179ac5f

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.
@@ -5,6 +5,12 @@ export type VariableValue = string | number | boolean | null | object;
5
5
  export type Variables = {
6
6
  readonly [index: string]: VariableValue;
7
7
  };
8
+ export type ExtractData<T> = T extends {
9
+ data: infer D extends object;
10
+ } ? D : never;
11
+ export type ExtractParameters<T> = T extends {
12
+ parameters: infer P extends Variables;
13
+ } ? P : Variables;
8
14
  export type FragmentReference<TReadFromStore extends {
9
15
  parameters: object;
10
16
  data: object;
@@ -12,7 +18,7 @@ export type FragmentReference<TReadFromStore extends {
12
18
  readonly kind: 'FragmentReference';
13
19
  readonly readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>>;
14
20
  readonly root: DataId;
15
- readonly variables: Variables;
21
+ readonly variables: ExtractParameters<TReadFromStore>;
16
22
  readonly networkRequest: PromiseWrapper<void, any>;
17
23
  };
18
24
  export declare function stableIdForFragmentReference(fragmentReference: FragmentReference<any, any>): string;
@@ -3,7 +3,7 @@ import { DataId, type IsographEnvironment } from './IsographEnvironment';
3
3
  import { IsographEntrypoint, NormalizationAst, NormalizationLinkedField, NormalizationScalarField, RefetchQueryNormalizationArtifactWrapper } from '../core/entrypoint';
4
4
  import { ReaderLinkedField, ReaderScalarField, type ReaderAst } from './reader';
5
5
  import { WithEncounteredRecords } from './read';
6
- import { FragmentReference, Variables } from './FragmentReference';
6
+ import { FragmentReference, Variables, ExtractParameters } from './FragmentReference';
7
7
  export declare function getOrCreateItemInSuspenseCache<TReadFromStore extends {
8
8
  parameters: object;
9
9
  data: object;
@@ -17,7 +17,7 @@ export declare function stableCopy<T>(value: T): T;
17
17
  export declare function getOrCreateCacheForArtifact<TReadFromStore extends {
18
18
  parameters: object;
19
19
  data: object;
20
- }, TClientFieldValue>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: Variables): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
20
+ }, TClientFieldValue>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: ExtractParameters<TReadFromStore>): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
21
21
  type NetworkResponseScalarValue = string | number | boolean;
22
22
  type NetworkResponseValue = NetworkResponseScalarValue | null | NetworkResponseObject | NetworkResponseObject[] | NetworkResponseScalarValue[];
23
23
  type NetworkResponseObject = {
@@ -105,9 +105,7 @@ function subscribe(environment, encounteredDataAndRecords, fragmentReference, ca
105
105
  fragmentReference,
106
106
  readerAst,
107
107
  };
108
- // @ts-expect-error
109
108
  environment.subscriptions.add(fragmentSubscription);
110
- // @ts-expect-error
111
109
  return () => environment.subscriptions.delete(fragmentSubscription);
112
110
  }
113
111
  exports.subscribe = subscribe;
@@ -1,8 +1,8 @@
1
- import { FragmentReference } from './FragmentReference';
1
+ import { FragmentReference, ExtractData } from './FragmentReference';
2
2
  import { DataId, IsographEnvironment } from './IsographEnvironment';
3
3
  export type WithEncounteredRecords<T> = {
4
4
  readonly encounteredRecords: Set<DataId>;
5
- readonly item: T;
5
+ readonly item: ExtractData<T>;
6
6
  };
7
7
  export declare function readButDoNotEvaluate<TReadFromStore extends {
8
8
  parameters: object;
@@ -1,33 +1,36 @@
1
1
  /// <reference types="react" />
2
2
  import { Factory } from '@isograph/disposable-types';
3
- import { FragmentReference, Variables } from './FragmentReference';
3
+ import { FragmentReference, ExtractParameters, ExtractData } from './FragmentReference';
4
4
  import { ComponentOrFieldName, DataId, IsographEnvironment } from './IsographEnvironment';
5
5
  import { IsographEntrypoint, IsographEntrypointLoader, RefetchQueryNormalizationArtifact, RefetchQueryNormalizationArtifactWrapper } from './entrypoint';
6
6
  import { Arguments } from './util';
7
7
  export type TopLevelReaderArtifact<TReadFromStore extends {
8
8
  parameters: object;
9
9
  data: object;
10
- }, TClientFieldValue, TComponentProps extends Record<string, never>, TVariables = Variables> = EagerReaderArtifact<TReadFromStore, TClientFieldValue, TVariables> | ComponentReaderArtifact<TReadFromStore, TComponentProps, TVariables>;
10
+ }, TClientFieldValue, TComponentProps extends Record<string, never>> = EagerReaderArtifact<TReadFromStore, TClientFieldValue> | ComponentReaderArtifact<TReadFromStore, TComponentProps>;
11
11
  export type EagerReaderArtifact<TReadFromStore extends {
12
12
  parameters: object;
13
13
  data: object;
14
- }, TClientFieldValue, TVariables = Variables> = {
14
+ }, TClientFieldValue> = {
15
15
  readonly kind: 'EagerReaderArtifact';
16
16
  readonly readerAst: ReaderAst<TReadFromStore>;
17
- readonly resolver: (data: ResolverFirstParameter<TReadFromStore, TVariables>) => TClientFieldValue;
17
+ readonly resolver: (data: ResolverFirstParameter<TReadFromStore>) => TClientFieldValue;
18
18
  };
19
19
  export type ComponentReaderArtifact<TReadFromStore extends {
20
20
  parameters: object;
21
21
  data: object;
22
- }, TComponentProps extends Record<string, unknown> = Record<string, never>, TVariables = Variables> = {
22
+ }, TComponentProps extends Record<string, unknown> = Record<string, never>> = {
23
23
  readonly kind: 'ComponentReaderArtifact';
24
24
  readonly componentName: ComponentOrFieldName;
25
25
  readonly readerAst: ReaderAst<TReadFromStore>;
26
- readonly resolver: (data: ResolverFirstParameter<TReadFromStore, TVariables>, runtimeProps: TComponentProps) => React.ReactNode;
26
+ readonly resolver: (data: ResolverFirstParameter<TReadFromStore>, runtimeProps: TComponentProps) => React.ReactNode;
27
27
  };
28
- export type ResolverFirstParameter<TReadFromStore extends object, TVariables = Variables> = {
29
- readonly data: TReadFromStore;
30
- readonly parameters: TVariables;
28
+ export type ResolverFirstParameter<TReadFromStore extends {
29
+ data: object;
30
+ parameters: object;
31
+ }> = {
32
+ data: ExtractData<TReadFromStore>;
33
+ parameters: ExtractParameters<TReadFromStore>;
31
34
  };
32
35
  export type RefetchReaderArtifact = {
33
36
  readonly kind: 'RefetchReaderArtifact';
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { type EagerReaderArtifact, type ComponentReaderArtifact, type RefetchRea
7
7
  export { type NormalizationAst, type NormalizationAstNode, type NormalizationLinkedField, type NormalizationScalarField, type IsographEntrypoint, assertIsEntrypoint, type RefetchQueryNormalizationArtifact, type RefetchQueryNormalizationArtifactWrapper, type ExtractProps, type ExtractReadFromStore, type ExtractResolverResult, } from './core/entrypoint';
8
8
  export { readButDoNotEvaluate } from './core/read';
9
9
  export { type ExtractSecondParam, type Argument, type ArgumentName, type ArgumentValue, type Arguments, } from './core/util';
10
- export { type FragmentReference, type Variables, stableIdForFragmentReference, } from './core/FragmentReference';
10
+ export { type FragmentReference, type Variables, type ExtractParameters, type ExtractData, stableIdForFragmentReference, } from './core/FragmentReference';
11
11
  export { IsographEnvironmentProvider, useIsographEnvironment, type IsographEnvironmentProviderProps, } from './react/IsographEnvironmentProvider';
12
12
  export { useImperativeReference } from './react/useImperativeReference';
13
13
  export { FragmentReader } from './react/FragmentReader';
@@ -69,6 +69,7 @@ function useSkipLimitPagination(loadableField) {
69
69
  }
70
70
  return clonedRefCountedPointer;
71
71
  });
72
+ // @ts-expect-error
72
73
  clonedPointers.push(newPointer);
73
74
  const totalItemCleanupPair = [
74
75
  clonedPointers,
@@ -1,10 +1,10 @@
1
1
  import { UnassignedState } from '@isograph/react-disposable-state';
2
2
  import { IsographEntrypoint } from '../core/entrypoint';
3
- import { FragmentReference, Variables } from '../core/FragmentReference';
3
+ import { FragmentReference, ExtractParameters } from '../core/FragmentReference';
4
4
  export declare function useImperativeReference<TReadFromStore extends {
5
5
  parameters: object;
6
6
  data: object;
7
7
  }, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>): {
8
8
  fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue> | UnassignedState;
9
- loadFragmentReference: (variables: Variables) => void;
9
+ loadFragmentReference: (variables: ExtractParameters<TReadFromStore>) => void;
10
10
  };
@@ -1,8 +1,8 @@
1
- import { FragmentReference, Variables } from '../core/FragmentReference';
1
+ import { FragmentReference, ExtractParameters } from '../core/FragmentReference';
2
2
  import { IsographEntrypoint } from '../core/entrypoint';
3
3
  export declare function useLazyReference<TReadFromStore extends {
4
4
  parameters: object;
5
5
  data: object;
6
- }, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: Variables): {
6
+ }, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: ExtractParameters<TReadFromStore>): {
7
7
  fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>;
8
8
  };
@@ -1,4 +1,4 @@
1
- import { FragmentReference } from '../core/FragmentReference';
1
+ import { FragmentReference, ExtractData } from '../core/FragmentReference';
2
2
  import { NetworkRequestReaderOptions, WithEncounteredRecords } from '../core/read';
3
3
  import type { ReaderAst } from '../core/reader';
4
4
  /**
@@ -7,7 +7,7 @@ import type { ReaderAst } from '../core/reader';
7
7
  export declare function useReadAndSubscribe<TReadFromStore extends {
8
8
  parameters: object;
9
9
  data: object;
10
- }>(fragmentReference: FragmentReference<TReadFromStore, any>, networkRequestOptions: NetworkRequestReaderOptions, readerAst: ReaderAst<TReadFromStore>): TReadFromStore;
10
+ }>(fragmentReference: FragmentReference<TReadFromStore, any>, networkRequestOptions: NetworkRequestReaderOptions, readerAst: ReaderAst<TReadFromStore>): ExtractData<TReadFromStore>;
11
11
  export declare function useSubscribeToMultiple<TReadFromStore extends {
12
12
  parameters: object;
13
13
  data: object;
@@ -18,11 +18,11 @@ function useResult(fragmentReference, partialNetworkRequestOptions) {
18
18
  }
19
19
  case 'EagerReaderArtifact': {
20
20
  const data = (0, useReadAndSubscribe_1.useReadAndSubscribe)(fragmentReference, networkRequestOptions, readerWithRefetchQueries.readerArtifact.readerAst);
21
- const firstParameter = {
21
+ const param = {
22
22
  data: data,
23
23
  parameters: fragmentReference.variables,
24
24
  };
25
- return readerWithRefetchQueries.readerArtifact.resolver(firstParameter);
25
+ return readerWithRefetchQueries.readerArtifact.resolver(param);
26
26
  }
27
27
  }
28
28
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isograph/react",
3
- "version": "0.0.0-main-2f4311e8",
3
+ "version": "0.0.0-main-3179ac5f",
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-2f4311e8",
21
- "@isograph/react-disposable-state": "0.0.0-main-2f4311e8",
22
- "@isograph/reference-counted-pointer": "0.0.0-main-2f4311e8"
20
+ "@isograph/disposable-types": "0.0.0-main-3179ac5f",
21
+ "@isograph/react-disposable-state": "0.0.0-main-3179ac5f",
22
+ "@isograph/reference-counted-pointer": "0.0.0-main-3179ac5f"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": "18.2.0"
@@ -7,6 +7,18 @@ export type VariableValue = string | number | boolean | null | object;
7
7
 
8
8
  export type Variables = { readonly [index: string]: VariableValue };
9
9
 
10
+ export type ExtractData<T> = T extends {
11
+ data: infer D extends object;
12
+ }
13
+ ? D
14
+ : never;
15
+
16
+ export type ExtractParameters<T> = T extends {
17
+ parameters: infer P extends Variables;
18
+ }
19
+ ? P
20
+ : Variables;
21
+
10
22
  export type FragmentReference<
11
23
  TReadFromStore extends { parameters: object; data: object },
12
24
  TClientFieldValue,
@@ -16,7 +28,7 @@ export type FragmentReference<
16
28
  ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
17
29
  >;
18
30
  readonly root: DataId;
19
- readonly variables: Variables;
31
+ readonly variables: ExtractParameters<TReadFromStore>;
20
32
  readonly networkRequest: PromiseWrapper<void, any>;
21
33
  };
22
34
 
package/src/core/cache.ts CHANGED
@@ -24,7 +24,11 @@ import {
24
24
  import { ReaderLinkedField, ReaderScalarField, type ReaderAst } from './reader';
25
25
  import { Argument, ArgumentValue } from './util';
26
26
  import { WithEncounteredRecords, readButDoNotEvaluate } from './read';
27
- import { FragmentReference, Variables } from './FragmentReference';
27
+ import {
28
+ FragmentReference,
29
+ Variables,
30
+ ExtractParameters,
31
+ } from './FragmentReference';
28
32
  import { mergeObjectsUsingReaderAst } from './areEqualWithDeepComparison';
29
33
  import { makeNetworkRequest } from './makeNetworkRequest';
30
34
  import { wrapResolvedValue } from './PromiseWrapper';
@@ -82,7 +86,7 @@ export function getOrCreateCacheForArtifact<
82
86
  >(
83
87
  environment: IsographEnvironment,
84
88
  entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>,
85
- variables: Variables,
89
+ variables: ExtractParameters<TReadFromStore>,
86
90
  ): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>> {
87
91
  const cacheKey = entrypoint.queryText + JSON.stringify(stableCopy(variables));
88
92
  const factory = () => {
@@ -198,9 +202,7 @@ export function subscribe<
198
202
  fragmentReference,
199
203
  readerAst,
200
204
  };
201
- // @ts-expect-error
202
205
  environment.subscriptions.add(fragmentSubscription);
203
- // @ts-expect-error
204
206
  return () => environment.subscriptions.delete(fragmentSubscription);
205
207
  }
206
208
 
package/src/core/read.ts CHANGED
@@ -5,7 +5,12 @@ import {
5
5
  IsographEntrypoint,
6
6
  RefetchQueryNormalizationArtifactWrapper,
7
7
  } from './entrypoint';
8
- import { FragmentReference, Variables } from './FragmentReference';
8
+ import {
9
+ FragmentReference,
10
+ Variables,
11
+ ExtractData,
12
+ ExtractParameters,
13
+ } from './FragmentReference';
9
14
  import {
10
15
  assertLink,
11
16
  DataId,
@@ -26,7 +31,7 @@ import { Arguments } from './util';
26
31
 
27
32
  export type WithEncounteredRecords<T> = {
28
33
  readonly encounteredRecords: Set<DataId>;
29
- readonly item: T;
34
+ readonly item: ExtractData<T>;
30
35
  };
31
36
 
32
37
  export function readButDoNotEvaluate<
@@ -88,7 +93,7 @@ export function readButDoNotEvaluate<
88
93
  type ReadDataResult<TReadFromStore> =
89
94
  | {
90
95
  readonly kind: 'Success';
91
- readonly data: TReadFromStore;
96
+ readonly data: ExtractData<TReadFromStore>;
92
97
  readonly encounteredRecords: Set<DataId>;
93
98
  }
94
99
  | {
@@ -101,7 +106,7 @@ function readData<TReadFromStore>(
101
106
  environment: IsographEnvironment,
102
107
  ast: ReaderAst<TReadFromStore>,
103
108
  root: DataId,
104
- variables: Variables,
109
+ variables: ExtractParameters<TReadFromStore>,
105
110
  nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[],
106
111
  networkRequest: PromiseWrapper<void, any>,
107
112
  networkRequestOptions: NetworkRequestReaderOptions,
@@ -1,5 +1,9 @@
1
1
  import { Factory } from '@isograph/disposable-types';
2
- import { FragmentReference, Variables } from './FragmentReference';
2
+ import {
3
+ FragmentReference,
4
+ ExtractParameters,
5
+ ExtractData,
6
+ } from './FragmentReference';
3
7
  import {
4
8
  ComponentOrFieldName,
5
9
  DataId,
@@ -17,43 +21,39 @@ export type TopLevelReaderArtifact<
17
21
  TReadFromStore extends { parameters: object; data: object },
18
22
  TClientFieldValue,
19
23
  TComponentProps extends Record<string, never>,
20
- TVariables = Variables,
21
24
  > =
22
- | EagerReaderArtifact<TReadFromStore, TClientFieldValue, TVariables>
23
- | ComponentReaderArtifact<TReadFromStore, TComponentProps, TVariables>;
25
+ | EagerReaderArtifact<TReadFromStore, TClientFieldValue>
26
+ | ComponentReaderArtifact<TReadFromStore, TComponentProps>;
24
27
 
25
28
  export type EagerReaderArtifact<
26
29
  TReadFromStore extends { parameters: object; data: object },
27
30
  TClientFieldValue,
28
- TVariables = Variables,
29
31
  > = {
30
32
  readonly kind: 'EagerReaderArtifact';
31
33
  readonly readerAst: ReaderAst<TReadFromStore>;
32
34
  readonly resolver: (
33
- data: ResolverFirstParameter<TReadFromStore, TVariables>,
35
+ data: ResolverFirstParameter<TReadFromStore>,
34
36
  ) => TClientFieldValue;
35
37
  };
36
38
 
37
39
  export type ComponentReaderArtifact<
38
40
  TReadFromStore extends { parameters: object; data: object },
39
41
  TComponentProps extends Record<string, unknown> = Record<string, never>,
40
- TVariables = Variables,
41
42
  > = {
42
43
  readonly kind: 'ComponentReaderArtifact';
43
44
  readonly componentName: ComponentOrFieldName;
44
45
  readonly readerAst: ReaderAst<TReadFromStore>;
45
46
  readonly resolver: (
46
- data: ResolverFirstParameter<TReadFromStore, TVariables>,
47
+ data: ResolverFirstParameter<TReadFromStore>,
47
48
  runtimeProps: TComponentProps,
48
49
  ) => React.ReactNode;
49
50
  };
50
51
 
51
52
  export type ResolverFirstParameter<
52
- TReadFromStore extends object,
53
- TVariables = Variables,
53
+ TReadFromStore extends { data: object; parameters: object },
54
54
  > = {
55
- readonly data: TReadFromStore;
56
- readonly parameters: TVariables;
55
+ data: ExtractData<TReadFromStore>;
56
+ parameters: ExtractParameters<TReadFromStore>;
57
57
  };
58
58
 
59
59
  export type RefetchReaderArtifact = {
package/src/index.ts CHANGED
@@ -63,6 +63,8 @@ export {
63
63
  export {
64
64
  type FragmentReference,
65
65
  type Variables,
66
+ type ExtractParameters,
67
+ type ExtractData,
66
68
  stableIdForFragmentReference,
67
69
  } from './core/FragmentReference';
68
70
 
@@ -169,6 +169,7 @@ export function useSkipLimitPagination<
169
169
  }
170
170
  return clonedRefCountedPointer;
171
171
  });
172
+ // @ts-expect-error
172
173
  clonedPointers.push(newPointer);
173
174
 
174
175
  const totalItemCleanupPair: ItemCleanupPair<
@@ -3,7 +3,10 @@ import {
3
3
  useUpdatableDisposableState,
4
4
  } from '@isograph/react-disposable-state';
5
5
  import { IsographEntrypoint } from '../core/entrypoint';
6
- import { FragmentReference, Variables } from '../core/FragmentReference';
6
+ import {
7
+ FragmentReference,
8
+ ExtractParameters,
9
+ } from '../core/FragmentReference';
7
10
  import { useIsographEnvironment } from './IsographEnvironmentProvider';
8
11
  import { ROOT_ID } from '../core/IsographEnvironment';
9
12
  import { makeNetworkRequest } from '../core/makeNetworkRequest';
@@ -20,7 +23,7 @@ export function useImperativeReference<
20
23
  fragmentReference:
21
24
  | FragmentReference<TReadFromStore, TClientFieldValue>
22
25
  | UnassignedState;
23
- loadFragmentReference: (variables: Variables) => void;
26
+ loadFragmentReference: (variables: ExtractParameters<TReadFromStore>) => void;
24
27
  } {
25
28
  const { state, setState } =
26
29
  useUpdatableDisposableState<
@@ -29,7 +32,7 @@ export function useImperativeReference<
29
32
  const environment = useIsographEnvironment();
30
33
  return {
31
34
  fragmentReference: state,
32
- loadFragmentReference: (variables: Variables) => {
35
+ loadFragmentReference: (variables: ExtractParameters<TReadFromStore>) => {
33
36
  const [networkRequest, disposeNetworkRequest] = makeNetworkRequest(
34
37
  environment,
35
38
  entrypoint,
@@ -1,4 +1,7 @@
1
- import { FragmentReference, Variables } from '../core/FragmentReference';
1
+ import {
2
+ FragmentReference,
3
+ ExtractParameters,
4
+ } from '../core/FragmentReference';
2
5
  import { useIsographEnvironment } from './IsographEnvironmentProvider';
3
6
  import { IsographEntrypoint } from '../core/entrypoint';
4
7
  import { getOrCreateCacheForArtifact } from '../core/cache';
@@ -9,7 +12,7 @@ export function useLazyReference<
9
12
  TClientFieldValue,
10
13
  >(
11
14
  entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>,
12
- variables: Variables,
15
+ variables: ExtractParameters<TReadFromStore>,
13
16
  ): {
14
17
  fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>;
15
18
  } {
@@ -2,6 +2,7 @@ import { useEffect, useState } from 'react';
2
2
  import {
3
3
  FragmentReference,
4
4
  stableIdForFragmentReference,
5
+ ExtractData,
5
6
  } from '../core/FragmentReference';
6
7
  import {
7
8
  NetworkRequestReaderOptions,
@@ -22,7 +23,7 @@ export function useReadAndSubscribe<
22
23
  fragmentReference: FragmentReference<TReadFromStore, any>,
23
24
  networkRequestOptions: NetworkRequestReaderOptions,
24
25
  readerAst: ReaderAst<TReadFromStore>,
25
- ): TReadFromStore {
26
+ ): ExtractData<TReadFromStore> {
26
27
  const environment = useIsographEnvironment();
27
28
  const [readOutDataAndRecords, setReadOutDataAndRecords] = useState(() =>
28
29
  readButDoNotEvaluate(environment, fragmentReference, networkRequestOptions),
@@ -48,11 +48,11 @@ export function useResult<
48
48
  networkRequestOptions,
49
49
  readerWithRefetchQueries.readerArtifact.readerAst,
50
50
  );
51
- const firstParameter = {
51
+ const param = {
52
52
  data: data,
53
53
  parameters: fragmentReference.variables,
54
54
  };
55
- return readerWithRefetchQueries.readerArtifact.resolver(firstParameter);
55
+ return readerWithRefetchQueries.readerArtifact.resolver(param);
56
56
  }
57
57
  }
58
58
  }
@@ -1,11 +1,9 @@
1
1
 
2
- import { type Variables } from '@isograph/react';
3
-
4
2
  export type Query__meName__param = {
5
3
  readonly data: {
6
4
  readonly me: {
7
5
  readonly name: string,
8
6
  },
9
7
  },
10
- readonly parameters: Variables,
8
+ readonly parameters: Record<string, never>,
11
9
  };
@@ -1,6 +1,4 @@
1
1
 
2
- import { type Variables } from '@isograph/react';
3
-
4
2
  export type Query__meNameSuccessor__param = {
5
3
  readonly data: {
6
4
  readonly me: {
@@ -12,5 +10,5 @@ export type Query__meNameSuccessor__param = {
12
10
  } | null),
13
11
  },
14
12
  },
15
- readonly parameters: Variables,
13
+ readonly parameters: Record<string, never>,
16
14
  };
@@ -1,5 +1,4 @@
1
-
2
- import { type Variables } from '@isograph/react';
1
+ import type { Query__nodeField__parameters } from './parameters_type';
3
2
 
4
3
  export type Query__nodeField__param = {
5
4
  readonly data: {
@@ -7,5 +6,5 @@ export type Query__nodeField__param = {
7
6
  readonly id: string,
8
7
  } | null),
9
8
  },
10
- readonly parameters: Variables,
9
+ readonly parameters: Query__nodeField__parameters,
11
10
  };
@@ -0,0 +1,3 @@
1
+ export type Query__nodeField__parameters = {
2
+ readonly id: string,
3
+ };
@@ -1,4 +1,4 @@
1
- import type { IsographEntrypoint, ResolverFirstParameter, Variables } from '@isograph/react';
1
+ import type { IsographEntrypoint } from '@isograph/react';
2
2
  import { type Query__meNameSuccessor__param } from './Query/meNameSuccessor/param_type';
3
3
  import { type Query__meName__param } from './Query/meName/param_type';
4
4
  import { type Query__nodeField__param } from './Query/nodeField/param_type';
@@ -10,9 +10,9 @@ import entrypoint_Query__nodeField from '../__isograph/Query/nodeField/entrypoin
10
10
  // This means that the type of the exported iso literal is exactly
11
11
  // the type of the passed-in function, which takes one parameter
12
12
  // of type TParam.
13
- type IdentityWithParam<TParam extends object> = <TClientFieldReturn, TVariables = Variables>(
13
+ type IdentityWithParam<TParam extends object> = <TClientFieldReturn>(
14
14
  clientField: (param: TParam) => TClientFieldReturn
15
- ) => (param: ResolverFirstParameter<TParam, TVariables>) => TClientFieldReturn;
15
+ ) => (param: TParam) => TClientFieldReturn;
16
16
 
17
17
  // This is the type given it to client fields with @component.
18
18
  // This means that the type of the exported iso literal is exactly
@@ -24,10 +24,9 @@ type IdentityWithParam<TParam extends object> = <TClientFieldReturn, TVariables
24
24
  type IdentityWithParamComponent<TParam extends object> = <
25
25
  TClientFieldReturn,
26
26
  TComponentProps = Record<string, never>,
27
- TVariables = Variables
28
27
  >(
29
28
  clientComponentField: (data: TParam, componentProps: TComponentProps) => TClientFieldReturn
30
- ) => (data: ResolverFirstParameter<TParam, TVariables>, componentProps: TComponentProps) => TClientFieldReturn;
29
+ ) => (data: TParam, componentProps: TComponentProps) => TClientFieldReturn;
31
30
 
32
31
  type WhitespaceCharacter = ' ' | '\t' | '\n';
33
32
  type Whitespace<In> = In extends `${WhitespaceCharacter}${infer In}`