@isograph/react 0.0.0-main-df52a61c → 0.0.0-main-5046aeef
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/core/FragmentReference.d.ts +1 -1
- package/dist/core/IsographEnvironment.d.ts +1 -1
- package/dist/core/cache.d.ts +3 -3
- package/dist/core/entrypoint.d.ts +4 -4
- package/dist/core/read.d.ts +1 -1
- package/dist/core/reader.d.ts +4 -4
- package/dist/loadable-hooks/useClientSideDefer.d.ts +1 -1
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts +1 -1
- package/dist/react/useImperativeReference.d.ts +1 -1
- package/dist/react/useLazyReference.d.ts +1 -1
- package/dist/react/useReadAndSubscribe.d.ts +2 -2
- package/dist/react/useRerenderOnChange.d.ts +1 -1
- package/dist/react/useResult.d.ts +1 -1
- package/package.json +4 -4
- package/src/core/FragmentReference.ts +1 -1
- package/src/core/IsographEnvironment.ts +1 -1
- package/src/core/cache.ts +3 -3
- package/src/core/entrypoint.ts +4 -4
- package/src/core/read.ts +1 -1
- package/src/core/reader.ts +4 -4
- package/src/loadable-hooks/useClientSideDefer.ts +2 -2
- package/src/loadable-hooks/useSkipLimitPagination.ts +4 -4
- package/src/react/useImperativeReference.ts +1 -1
- package/src/react/useLazyReference.ts +1 -1
- package/src/react/useReadAndSubscribe.ts +2 -2
- package/src/react/useRerenderOnChange.ts +1 -1
- package/src/react/useResult.ts +1 -1
- package/src/tests/__isograph/iso.ts +2 -2
@@ -5,7 +5,7 @@ export type VariableValue = string | number | boolean | null | object;
|
|
5
5
|
export type Variables = {
|
6
6
|
readonly [index: string]: VariableValue;
|
7
7
|
};
|
8
|
-
export type FragmentReference<TReadFromStore extends
|
8
|
+
export type FragmentReference<TReadFromStore extends object, TClientFieldValue> = {
|
9
9
|
readonly kind: 'FragmentReference';
|
10
10
|
readonly readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>>;
|
11
11
|
readonly root: DataId;
|
@@ -15,7 +15,7 @@ type ComponentCache = {
|
|
15
15
|
};
|
16
16
|
};
|
17
17
|
};
|
18
|
-
export type FragmentSubscription<TReadFromStore extends
|
18
|
+
export type FragmentSubscription<TReadFromStore extends object> = {
|
19
19
|
readonly kind: 'FragmentSubscription';
|
20
20
|
readonly callback: (newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>) => void;
|
21
21
|
/** The value read out from the previous call to readButDoNotEvaluate */
|
package/dist/core/cache.d.ts
CHANGED
@@ -4,14 +4,14 @@ import { IsographEntrypoint, NormalizationAst, NormalizationLinkedField, Normali
|
|
4
4
|
import { ReaderLinkedField, ReaderScalarField, type ReaderAst } from './reader';
|
5
5
|
import { WithEncounteredRecords } from './read';
|
6
6
|
import { FragmentReference, Variables } from './FragmentReference';
|
7
|
-
export declare function getOrCreateItemInSuspenseCache<TReadFromStore extends
|
7
|
+
export declare function getOrCreateItemInSuspenseCache<TReadFromStore extends object, TClientFieldValue>(environment: IsographEnvironment, index: string, factory: Factory<FragmentReference<TReadFromStore, TClientFieldValue>>): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
|
8
8
|
/**
|
9
9
|
* Creates a copy of the provided value, ensuring any nested objects have their
|
10
10
|
* keys sorted such that equivalent values would have identical JSON.stringify
|
11
11
|
* results.
|
12
12
|
*/
|
13
13
|
export declare function stableCopy<T>(value: T): T;
|
14
|
-
export declare function getOrCreateCacheForArtifact<TReadFromStore extends
|
14
|
+
export declare function getOrCreateCacheForArtifact<TReadFromStore extends object, TClientFieldValue>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: Variables): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
|
15
15
|
type NetworkResponseScalarValue = string | number | boolean;
|
16
16
|
type NetworkResponseValue = NetworkResponseScalarValue | null | NetworkResponseObject | NetworkResponseObject[] | NetworkResponseScalarValue[];
|
17
17
|
type NetworkResponseObject = {
|
@@ -20,7 +20,7 @@ type NetworkResponseObject = {
|
|
20
20
|
};
|
21
21
|
export declare function normalizeData(environment: IsographEnvironment, normalizationAst: NormalizationAst, networkResponse: NetworkResponseObject, variables: Variables, nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[]): Set<DataId>;
|
22
22
|
export declare function subscribeToAnyChange(environment: IsographEnvironment, callback: () => void): () => void;
|
23
|
-
export declare function subscribe<TReadFromStore extends
|
23
|
+
export declare function subscribe<TReadFromStore extends object>(environment: IsographEnvironment, encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>, fragmentReference: FragmentReference<TReadFromStore, any>, callback: (newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>) => void, readerAst: ReaderAst<TReadFromStore>): () => void;
|
24
24
|
export declare function onNextChange(environment: IsographEnvironment): Promise<void>;
|
25
25
|
export declare function getParentRecordKey(astNode: NormalizationLinkedField | NormalizationScalarField | ReaderLinkedField | ReaderScalarField, variables: Variables): string;
|
26
26
|
export declare const FIRST_SPLIT_KEY = "____";
|
@@ -1,18 +1,18 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { TopLevelReaderArtifact } from './reader';
|
3
3
|
import { Arguments } from './util';
|
4
|
-
export type ReaderWithRefetchQueries<TReadFromStore extends
|
4
|
+
export type ReaderWithRefetchQueries<TReadFromStore extends object, TClientFieldValue> = {
|
5
5
|
readonly kind: 'ReaderWithRefetchQueries';
|
6
6
|
readonly readerArtifact: TopLevelReaderArtifact<TReadFromStore, TClientFieldValue, any>;
|
7
7
|
readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
|
8
8
|
};
|
9
|
-
export type IsographEntrypoint<TReadFromStore extends
|
9
|
+
export type IsographEntrypoint<TReadFromStore extends object, TClientFieldValue> = {
|
10
10
|
readonly kind: 'Entrypoint';
|
11
11
|
readonly queryText: string;
|
12
12
|
readonly normalizationAst: NormalizationAst;
|
13
13
|
readonly readerWithRefetchQueries: ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>;
|
14
14
|
};
|
15
|
-
export type IsographEntrypointLoader<TReadFromStore extends
|
15
|
+
export type IsographEntrypointLoader<TReadFromStore extends object, TClientFieldValue> = {
|
16
16
|
readonly kind: 'EntrypointLoader';
|
17
17
|
readonly typeAndField: string;
|
18
18
|
readonly loader: () => Promise<IsographEntrypoint<TReadFromStore, TClientFieldValue>>;
|
@@ -44,7 +44,7 @@ export type RefetchQueryNormalizationArtifactWrapper = {
|
|
44
44
|
readonly artifact: RefetchQueryNormalizationArtifact;
|
45
45
|
readonly allowedVariables: string[];
|
46
46
|
};
|
47
|
-
export declare function assertIsEntrypoint<TReadFromStore extends
|
47
|
+
export declare function assertIsEntrypoint<TReadFromStore extends object, TClientFieldValue>(value: IsographEntrypoint<TReadFromStore, TClientFieldValue> | ((_: any) => any) | any): asserts value is IsographEntrypoint<TReadFromStore, TClientFieldValue>;
|
48
48
|
export type ExtractReadFromStore<Type> = Type extends IsographEntrypoint<infer X, any> ? X : never;
|
49
49
|
export type ExtractResolverResult<Type> = Type extends IsographEntrypoint<any, infer X> ? X : never;
|
50
50
|
export type ExtractProps<Type> = Type extends React.FC<infer X> ? X : never;
|
package/dist/core/read.d.ts
CHANGED
@@ -4,7 +4,7 @@ export type WithEncounteredRecords<T> = {
|
|
4
4
|
readonly encounteredRecords: Set<DataId>;
|
5
5
|
readonly item: T;
|
6
6
|
};
|
7
|
-
export declare function readButDoNotEvaluate<TReadFromStore extends
|
7
|
+
export declare function readButDoNotEvaluate<TReadFromStore extends object>(environment: IsographEnvironment, fragmentReference: FragmentReference<TReadFromStore, unknown>, networkRequestOptions: NetworkRequestReaderOptions): WithEncounteredRecords<TReadFromStore>;
|
8
8
|
export type NetworkRequestReaderOptions = {
|
9
9
|
suspendIfInFlight: boolean;
|
10
10
|
throwOnNetworkError: boolean;
|
package/dist/core/reader.d.ts
CHANGED
@@ -4,19 +4,19 @@ import { FragmentReference, Variables } 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
|
-
export type TopLevelReaderArtifact<TReadFromStore extends
|
8
|
-
export type EagerReaderArtifact<TReadFromStore extends
|
7
|
+
export type TopLevelReaderArtifact<TReadFromStore extends object, TClientFieldValue, TComponentProps extends Record<string, never>, TVariables = Variables> = EagerReaderArtifact<TReadFromStore, TClientFieldValue, TVariables> | ComponentReaderArtifact<TReadFromStore, TComponentProps, TVariables>;
|
8
|
+
export type EagerReaderArtifact<TReadFromStore extends object, TClientFieldValue, TVariables = Variables> = {
|
9
9
|
readonly kind: 'EagerReaderArtifact';
|
10
10
|
readonly readerAst: ReaderAst<TReadFromStore>;
|
11
11
|
readonly resolver: (data: ResolverFirstParameter<TReadFromStore, TVariables>) => TClientFieldValue;
|
12
12
|
};
|
13
|
-
export type ComponentReaderArtifact<TReadFromStore extends
|
13
|
+
export type ComponentReaderArtifact<TReadFromStore extends object, TComponentProps extends Record<string, unknown> = Record<string, never>, TVariables = Variables> = {
|
14
14
|
readonly kind: 'ComponentReaderArtifact';
|
15
15
|
readonly componentName: ComponentOrFieldName;
|
16
16
|
readonly readerAst: ReaderAst<TReadFromStore>;
|
17
17
|
readonly resolver: (data: ResolverFirstParameter<TReadFromStore, TVariables>, runtimeProps: TComponentProps) => React.ReactNode;
|
18
18
|
};
|
19
|
-
export type ResolverFirstParameter<TReadFromStore extends
|
19
|
+
export type ResolverFirstParameter<TReadFromStore extends object, TVariables = Variables> = {
|
20
20
|
readonly data: TReadFromStore;
|
21
21
|
readonly parameters: TVariables;
|
22
22
|
};
|
@@ -3,6 +3,6 @@ import { LoadableField } from '../core/reader';
|
|
3
3
|
export declare function useClientSideDefer<TResult>(loadableField: LoadableField<void, TResult>): {
|
4
4
|
fragmentReference: FragmentReference<Record<string, never>, TResult>;
|
5
5
|
};
|
6
|
-
export declare function useClientSideDefer<TArgs extends
|
6
|
+
export declare function useClientSideDefer<TArgs extends object, TResult>(loadableField: LoadableField<TArgs, TResult>, args: TArgs): {
|
7
7
|
fragmentReference: FragmentReference<TArgs, TResult>;
|
8
8
|
};
|
@@ -14,5 +14,5 @@ type UseSkipLimitReturnValue<TArgs, TItem> = {
|
|
14
14
|
export declare function useSkipLimitPagination<TArgs extends {
|
15
15
|
skip: number | void | null;
|
16
16
|
limit: number | void | null;
|
17
|
-
}, TItem, TReadFromStore extends
|
17
|
+
}, TItem, TReadFromStore extends object>(loadableField: LoadableField<TArgs, ReadonlyArray<TItem>>): UseSkipLimitReturnValue<TArgs, TItem>;
|
18
18
|
export {};
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { UnassignedState } from '@isograph/react-disposable-state';
|
2
2
|
import { IsographEntrypoint } from '../core/entrypoint';
|
3
3
|
import { FragmentReference, Variables } from '../core/FragmentReference';
|
4
|
-
export declare function useImperativeReference<TReadFromStore extends
|
4
|
+
export declare function useImperativeReference<TReadFromStore extends object, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>): {
|
5
5
|
fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue> | UnassignedState;
|
6
6
|
loadFragmentReference: (variables: Variables) => void;
|
7
7
|
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { FragmentReference, Variables } from '../core/FragmentReference';
|
2
2
|
import { IsographEntrypoint } from '../core/entrypoint';
|
3
|
-
export declare function useLazyReference<TReadFromStore extends
|
3
|
+
export declare function useLazyReference<TReadFromStore extends object, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: Variables): {
|
4
4
|
fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>;
|
5
5
|
};
|
@@ -4,8 +4,8 @@ import type { ReaderAst } from '../core/reader';
|
|
4
4
|
/**
|
5
5
|
* Read the data from a fragment reference and subscribe to updates.
|
6
6
|
*/
|
7
|
-
export declare function useReadAndSubscribe<TReadFromStore extends
|
8
|
-
export declare function useSubscribeToMultiple<TReadFromStore extends
|
7
|
+
export declare function useReadAndSubscribe<TReadFromStore extends object>(fragmentReference: FragmentReference<TReadFromStore, any>, networkRequestOptions: NetworkRequestReaderOptions, readerAst: ReaderAst<TReadFromStore>): TReadFromStore;
|
8
|
+
export declare function useSubscribeToMultiple<TReadFromStore extends object>(items: ReadonlyArray<{
|
9
9
|
records: WithEncounteredRecords<TReadFromStore>;
|
10
10
|
callback: (updatedRecords: WithEncounteredRecords<TReadFromStore>) => void;
|
11
11
|
fragmentReference: FragmentReference<TReadFromStore, any>;
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import { WithEncounteredRecords } from '../core/read';
|
2
2
|
import { FragmentReference } from '../core/FragmentReference';
|
3
3
|
import type { ReaderAst } from '../core/reader';
|
4
|
-
export declare function useRerenderOnChange<TReadFromStore extends
|
4
|
+
export declare function useRerenderOnChange<TReadFromStore extends object>(encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>, fragmentReference: FragmentReference<any, any>, setEncounteredDataAndRecords: (data: WithEncounteredRecords<TReadFromStore>) => void, readerAst: ReaderAst<TReadFromStore>): void;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { FragmentReference } from '../core/FragmentReference';
|
2
2
|
import { NetworkRequestReaderOptions } from '../core/read';
|
3
3
|
import { PromiseWrapper } from '../core/PromiseWrapper';
|
4
|
-
export declare function useResult<TReadFromStore extends
|
4
|
+
export declare function useResult<TReadFromStore extends object, TClientFieldValue>(fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>, partialNetworkRequestOptions?: Partial<NetworkRequestReaderOptions> | void): TClientFieldValue;
|
5
5
|
export declare function maybeUnwrapNetworkRequest(networkRequest: PromiseWrapper<void, any>, networkRequestOptions: NetworkRequestReaderOptions): void;
|
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-5046aeef",
|
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-5046aeef",
|
21
|
+
"@isograph/react-disposable-state": "0.0.0-main-5046aeef",
|
22
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-5046aeef"
|
23
23
|
},
|
24
24
|
"peerDependencies": {
|
25
25
|
"react": "18.2.0"
|
@@ -8,7 +8,7 @@ export type VariableValue = string | number | boolean | null | object;
|
|
8
8
|
export type Variables = { readonly [index: string]: VariableValue };
|
9
9
|
|
10
10
|
export type FragmentReference<
|
11
|
-
TReadFromStore extends
|
11
|
+
TReadFromStore extends object,
|
12
12
|
TClientFieldValue,
|
13
13
|
> = {
|
14
14
|
readonly kind: 'FragmentReference';
|
@@ -14,7 +14,7 @@ type ComponentCache = {
|
|
14
14
|
};
|
15
15
|
};
|
16
16
|
|
17
|
-
export type FragmentSubscription<TReadFromStore extends
|
17
|
+
export type FragmentSubscription<TReadFromStore extends object> = {
|
18
18
|
readonly kind: 'FragmentSubscription';
|
19
19
|
readonly callback: (
|
20
20
|
newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>,
|
package/src/core/cache.ts
CHANGED
@@ -32,7 +32,7 @@ import { wrapResolvedValue } from './PromiseWrapper';
|
|
32
32
|
const TYPENAME_FIELD_NAME = '__typename';
|
33
33
|
|
34
34
|
export function getOrCreateItemInSuspenseCache<
|
35
|
-
TReadFromStore extends
|
35
|
+
TReadFromStore extends object,
|
36
36
|
TClientFieldValue,
|
37
37
|
>(
|
38
38
|
environment: IsographEnvironment,
|
@@ -77,7 +77,7 @@ export function stableCopy<T>(value: T): T {
|
|
77
77
|
}
|
78
78
|
|
79
79
|
export function getOrCreateCacheForArtifact<
|
80
|
-
TReadFromStore extends
|
80
|
+
TReadFromStore extends object,
|
81
81
|
TClientFieldValue,
|
82
82
|
>(
|
83
83
|
environment: IsographEnvironment,
|
@@ -180,7 +180,7 @@ export function subscribeToAnyChange(
|
|
180
180
|
}
|
181
181
|
|
182
182
|
// TODO we should re-read and call callback if the value has changed
|
183
|
-
export function subscribe<TReadFromStore extends
|
183
|
+
export function subscribe<TReadFromStore extends object>(
|
184
184
|
environment: IsographEnvironment,
|
185
185
|
encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>,
|
186
186
|
fragmentReference: FragmentReference<TReadFromStore, any>,
|
package/src/core/entrypoint.ts
CHANGED
@@ -2,7 +2,7 @@ import { TopLevelReaderArtifact } from './reader';
|
|
2
2
|
import { Arguments } from './util';
|
3
3
|
|
4
4
|
export type ReaderWithRefetchQueries<
|
5
|
-
TReadFromStore extends
|
5
|
+
TReadFromStore extends object,
|
6
6
|
TClientFieldValue,
|
7
7
|
> = {
|
8
8
|
readonly kind: 'ReaderWithRefetchQueries';
|
@@ -17,7 +17,7 @@ export type ReaderWithRefetchQueries<
|
|
17
17
|
|
18
18
|
// This type should be treated as an opaque type.
|
19
19
|
export type IsographEntrypoint<
|
20
|
-
TReadFromStore extends
|
20
|
+
TReadFromStore extends object,
|
21
21
|
TClientFieldValue,
|
22
22
|
> = {
|
23
23
|
readonly kind: 'Entrypoint';
|
@@ -30,7 +30,7 @@ export type IsographEntrypoint<
|
|
30
30
|
};
|
31
31
|
|
32
32
|
export type IsographEntrypointLoader<
|
33
|
-
TReadFromStore extends
|
33
|
+
TReadFromStore extends object,
|
34
34
|
TClientFieldValue,
|
35
35
|
> = {
|
36
36
|
readonly kind: 'EntrypointLoader';
|
@@ -79,7 +79,7 @@ export type RefetchQueryNormalizationArtifactWrapper = {
|
|
79
79
|
};
|
80
80
|
|
81
81
|
export function assertIsEntrypoint<
|
82
|
-
TReadFromStore extends
|
82
|
+
TReadFromStore extends object,
|
83
83
|
TClientFieldValue,
|
84
84
|
>(
|
85
85
|
value:
|
package/src/core/read.ts
CHANGED
@@ -29,7 +29,7 @@ export type WithEncounteredRecords<T> = {
|
|
29
29
|
readonly item: T;
|
30
30
|
};
|
31
31
|
|
32
|
-
export function readButDoNotEvaluate<TReadFromStore extends
|
32
|
+
export function readButDoNotEvaluate<TReadFromStore extends object>(
|
33
33
|
environment: IsographEnvironment,
|
34
34
|
fragmentReference: FragmentReference<TReadFromStore, unknown>,
|
35
35
|
networkRequestOptions: NetworkRequestReaderOptions,
|
package/src/core/reader.ts
CHANGED
@@ -14,7 +14,7 @@ import {
|
|
14
14
|
import { Arguments } from './util';
|
15
15
|
|
16
16
|
export type TopLevelReaderArtifact<
|
17
|
-
TReadFromStore extends
|
17
|
+
TReadFromStore extends object,
|
18
18
|
TClientFieldValue,
|
19
19
|
TComponentProps extends Record<string, never>,
|
20
20
|
TVariables = Variables,
|
@@ -23,7 +23,7 @@ export type TopLevelReaderArtifact<
|
|
23
23
|
| ComponentReaderArtifact<TReadFromStore, TComponentProps, TVariables>;
|
24
24
|
|
25
25
|
export type EagerReaderArtifact<
|
26
|
-
TReadFromStore extends
|
26
|
+
TReadFromStore extends object,
|
27
27
|
TClientFieldValue,
|
28
28
|
TVariables = Variables,
|
29
29
|
> = {
|
@@ -35,7 +35,7 @@ export type EagerReaderArtifact<
|
|
35
35
|
};
|
36
36
|
|
37
37
|
export type ComponentReaderArtifact<
|
38
|
-
TReadFromStore extends
|
38
|
+
TReadFromStore extends object,
|
39
39
|
TComponentProps extends Record<string, unknown> = Record<string, never>,
|
40
40
|
TVariables = Variables,
|
41
41
|
> = {
|
@@ -49,7 +49,7 @@ export type ComponentReaderArtifact<
|
|
49
49
|
};
|
50
50
|
|
51
51
|
export type ResolverFirstParameter<
|
52
|
-
TReadFromStore extends
|
52
|
+
TReadFromStore extends object,
|
53
53
|
TVariables = Variables,
|
54
54
|
> = {
|
55
55
|
readonly data: TReadFromStore;
|
@@ -8,12 +8,12 @@ export function useClientSideDefer<TResult>(
|
|
8
8
|
loadableField: LoadableField<void, TResult>,
|
9
9
|
): { fragmentReference: FragmentReference<Record<string, never>, TResult> };
|
10
10
|
|
11
|
-
export function useClientSideDefer<TArgs extends
|
11
|
+
export function useClientSideDefer<TArgs extends object, TResult>(
|
12
12
|
loadableField: LoadableField<TArgs, TResult>,
|
13
13
|
args: TArgs,
|
14
14
|
): { fragmentReference: FragmentReference<TArgs, TResult> };
|
15
15
|
|
16
|
-
export function useClientSideDefer<TArgs extends
|
16
|
+
export function useClientSideDefer<TArgs extends object, TResult>(
|
17
17
|
loadableField: LoadableField<TArgs, TResult>,
|
18
18
|
args?: TArgs,
|
19
19
|
): { fragmentReference: FragmentReference<TArgs, TResult> } {
|
@@ -36,17 +36,17 @@ type UseSkipLimitReturnValue<TArgs, TItem> =
|
|
36
36
|
};
|
37
37
|
|
38
38
|
type ArrayFragmentReference<
|
39
|
-
TReadFromStore extends
|
39
|
+
TReadFromStore extends object,
|
40
40
|
TItem,
|
41
41
|
> = FragmentReference<TReadFromStore, ReadonlyArray<TItem>>;
|
42
42
|
|
43
43
|
type LoadedFragmentReferences<
|
44
|
-
TReadFromStore extends
|
44
|
+
TReadFromStore extends object,
|
45
45
|
TItem,
|
46
46
|
> = ReadonlyArray<LoadedFragmentReference<TReadFromStore, TItem>>;
|
47
47
|
|
48
48
|
type LoadedFragmentReference<
|
49
|
-
TReadFromStore extends
|
49
|
+
TReadFromStore extends object,
|
50
50
|
TItem,
|
51
51
|
> = ItemCleanupPair<
|
52
52
|
ReferenceCountedPointer<ArrayFragmentReference<TReadFromStore, TItem>>
|
@@ -68,7 +68,7 @@ export function useSkipLimitPagination<
|
|
68
68
|
limit: number | void | null;
|
69
69
|
},
|
70
70
|
TItem,
|
71
|
-
TReadFromStore extends
|
71
|
+
TReadFromStore extends object,
|
72
72
|
>(
|
73
73
|
loadableField: LoadableField<TArgs, ReadonlyArray<TItem>>,
|
74
74
|
): UseSkipLimitReturnValue<TArgs, TItem> {
|
@@ -12,7 +12,7 @@ import { wrapResolvedValue } from '../core/PromiseWrapper';
|
|
12
12
|
// TODO rename this to useImperativelyLoadedEntrypoint
|
13
13
|
|
14
14
|
export function useImperativeReference<
|
15
|
-
TReadFromStore extends
|
15
|
+
TReadFromStore extends object,
|
16
16
|
TClientFieldValue,
|
17
17
|
>(
|
18
18
|
entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>,
|
@@ -5,7 +5,7 @@ import { getOrCreateCacheForArtifact } from '../core/cache';
|
|
5
5
|
import { useLazyDisposableState } from '@isograph/react-disposable-state';
|
6
6
|
|
7
7
|
export function useLazyReference<
|
8
|
-
TReadFromStore extends
|
8
|
+
TReadFromStore extends object,
|
9
9
|
TClientFieldValue,
|
10
10
|
>(
|
11
11
|
entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>,
|
@@ -16,7 +16,7 @@ import type { ReaderAst } from '../core/reader';
|
|
16
16
|
/**
|
17
17
|
* Read the data from a fragment reference and subscribe to updates.
|
18
18
|
*/
|
19
|
-
export function useReadAndSubscribe<TReadFromStore extends
|
19
|
+
export function useReadAndSubscribe<TReadFromStore extends object>(
|
20
20
|
fragmentReference: FragmentReference<TReadFromStore, any>,
|
21
21
|
networkRequestOptions: NetworkRequestReaderOptions,
|
22
22
|
readerAst: ReaderAst<TReadFromStore>,
|
@@ -34,7 +34,7 @@ export function useReadAndSubscribe<TReadFromStore extends Object>(
|
|
34
34
|
return readOutDataAndRecords.item;
|
35
35
|
}
|
36
36
|
|
37
|
-
export function useSubscribeToMultiple<TReadFromStore extends
|
37
|
+
export function useSubscribeToMultiple<TReadFromStore extends object>(
|
38
38
|
items: ReadonlyArray<{
|
39
39
|
records: WithEncounteredRecords<TReadFromStore>;
|
40
40
|
callback: (updatedRecords: WithEncounteredRecords<TReadFromStore>) => void;
|
@@ -7,7 +7,7 @@ import type { ReaderAst } from '../core/reader';
|
|
7
7
|
|
8
8
|
// TODO add unit tests for this. Add integration tests that test
|
9
9
|
// behavior when the encounteredRecords underneath a fragment change.
|
10
|
-
export function useRerenderOnChange<TReadFromStore extends
|
10
|
+
export function useRerenderOnChange<TReadFromStore extends object>(
|
11
11
|
encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>,
|
12
12
|
fragmentReference: FragmentReference<any, any>,
|
13
13
|
setEncounteredDataAndRecords: (
|
package/src/react/useResult.ts
CHANGED
@@ -12,7 +12,7 @@ import {
|
|
12
12
|
readPromise,
|
13
13
|
} from '../core/PromiseWrapper';
|
14
14
|
|
15
|
-
export function useResult<TReadFromStore extends
|
15
|
+
export function useResult<TReadFromStore extends object, TClientFieldValue>(
|
16
16
|
fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>,
|
17
17
|
partialNetworkRequestOptions?: Partial<NetworkRequestReaderOptions> | void,
|
18
18
|
): TClientFieldValue {
|
@@ -10,7 +10,7 @@ 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
|
13
|
+
type IdentityWithParam<TParam extends object> = <TClientFieldReturn, TVariables = Variables>(
|
14
14
|
clientField: (param: TParam) => TClientFieldReturn
|
15
15
|
) => (param: ResolverFirstParameter<TParam, TVariables>) => TClientFieldReturn;
|
16
16
|
|
@@ -21,7 +21,7 @@ type IdentityWithParam<TParam extends Object> = <TClientFieldReturn, TVariables
|
|
21
21
|
//
|
22
22
|
// TComponentProps becomes the types of the props you must pass
|
23
23
|
// whenever the @component field is rendered.
|
24
|
-
type IdentityWithParamComponent<TParam extends
|
24
|
+
type IdentityWithParamComponent<TParam extends object> = <
|
25
25
|
TClientFieldReturn,
|
26
26
|
TComponentProps = Record<string, never>,
|
27
27
|
TVariables = Variables
|