@isograph/react 0.0.0-main-2f494978 → 0.0.0-main-3779371d
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.d.ts
CHANGED
@@ -15,7 +15,7 @@ declare global {
|
|
15
15
|
*/
|
16
16
|
export declare function stableCopy<T>(value: T): T;
|
17
17
|
type IsoResolver = IsographEntrypoint<any, any>;
|
18
|
-
export declare function getOrCreateCacheForArtifact<
|
18
|
+
export declare function getOrCreateCacheForArtifact<TReadFromStore extends Object, TClientFieldValue>(environment: IsographEnvironment, artifact: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: object): ParentCache<PromiseWrapper<TClientFieldValue>>;
|
19
19
|
export declare function makeNetworkRequest<T>(environment: IsographEnvironment, artifact: IsoResolver, variables: object): ItemCleanupPair<PromiseWrapper<T>>;
|
20
20
|
export declare function subscribe(environment: IsographEnvironment, callback: () => void): () => void;
|
21
21
|
export declare function onNextChange(environment: IsographEnvironment): Promise<void>;
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { UnassignedState } from '@isograph/react-disposable-state';
|
2
|
-
import {
|
2
|
+
import { IsographEntrypoint } from './entrypoint';
|
3
3
|
import { FragmentReference } from './FragmentReference';
|
4
|
-
export declare function useImperativeReference<
|
5
|
-
queryReference: FragmentReference<
|
4
|
+
export declare function useImperativeReference<TReadFromStore extends Object, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>): {
|
5
|
+
queryReference: FragmentReference<TReadFromStore, TClientFieldValue> | UnassignedState;
|
6
6
|
loadQueryReference: (variables: {
|
7
7
|
[index: string]: string;
|
8
8
|
}) => void;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { FragmentReference, Variable } from './FragmentReference';
|
2
|
-
import {
|
3
|
-
export declare function useLazyReference<
|
2
|
+
import { IsographEntrypoint } from './entrypoint';
|
3
|
+
export declare function useLazyReference<TReadFromStore extends Object, TClientFieldValue>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: {
|
4
4
|
[key: string]: Variable;
|
5
5
|
}): {
|
6
|
-
queryReference: FragmentReference<
|
6
|
+
queryReference: FragmentReference<TReadFromStore, TClientFieldValue>;
|
7
7
|
};
|
package/dist/useLazyReference.js
CHANGED
@@ -3,20 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useLazyReference = void 0;
|
4
4
|
const IsographEnvironmentProvider_1 = require("./IsographEnvironmentProvider");
|
5
5
|
const IsographEnvironment_1 = require("./IsographEnvironment");
|
6
|
-
const entrypoint_1 = require("./entrypoint");
|
7
6
|
const cache_1 = require("./cache");
|
8
7
|
const react_disposable_state_1 = require("@isograph/react-disposable-state");
|
9
|
-
// Note: we cannot write TEntrypoint extends IsographEntrypoint<any, any, any>, or else
|
10
|
-
// if we do not explicitly pass a type, the read out type will be any.
|
11
|
-
// We cannot write TEntrypoint extends IsographEntrypoint<never, never, never>, or else
|
12
|
-
// any actual Entrypoint we pass will not be valid.
|
13
8
|
function useLazyReference(entrypoint, variables) {
|
14
9
|
const environment = (0, IsographEnvironmentProvider_1.useIsographEnvironment)();
|
15
|
-
(0, entrypoint_1.assertIsEntrypoint)(entrypoint);
|
16
10
|
const cache = (0, cache_1.getOrCreateCacheForArtifact)(environment, entrypoint, variables);
|
17
11
|
// TODO add comment explaining why we never use this value
|
18
|
-
// @ts-ignore
|
19
|
-
const
|
12
|
+
// @ts-ignore(6133)
|
13
|
+
const _data = (0, react_disposable_state_1.useLazyDisposableState)(cache).state;
|
20
14
|
return {
|
21
15
|
queryReference: {
|
22
16
|
kind: 'FragmentReference',
|
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-3779371d",
|
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-
|
20
|
-
"@isograph/react-disposable-state": "0.0.0-main-
|
19
|
+
"@isograph/disposable-types": "0.0.0-main-3779371d",
|
20
|
+
"@isograph/react-disposable-state": "0.0.0-main-3779371d",
|
21
21
|
"react": "^18.2.0"
|
22
22
|
},
|
23
23
|
"devDependencies": {
|
package/src/cache.ts
CHANGED
@@ -76,15 +76,22 @@ export function stableCopy<T>(value: T): T {
|
|
76
76
|
|
77
77
|
type IsoResolver = IsographEntrypoint<any, any>;
|
78
78
|
|
79
|
-
export function getOrCreateCacheForArtifact<
|
79
|
+
export function getOrCreateCacheForArtifact<
|
80
|
+
TReadFromStore extends Object,
|
81
|
+
TClientFieldValue,
|
82
|
+
>(
|
80
83
|
environment: IsographEnvironment,
|
81
|
-
artifact: IsographEntrypoint<
|
84
|
+
artifact: IsographEntrypoint<TReadFromStore, TClientFieldValue>,
|
82
85
|
variables: object,
|
83
|
-
): ParentCache<PromiseWrapper<
|
86
|
+
): ParentCache<PromiseWrapper<TClientFieldValue>> {
|
84
87
|
const cacheKey = artifact.queryText + JSON.stringify(stableCopy(variables));
|
85
|
-
const factory: Factory<PromiseWrapper<
|
86
|
-
makeNetworkRequest<
|
87
|
-
return getOrCreateCache<PromiseWrapper<
|
88
|
+
const factory: Factory<PromiseWrapper<TClientFieldValue>> = () =>
|
89
|
+
makeNetworkRequest<TClientFieldValue>(environment, artifact, variables);
|
90
|
+
return getOrCreateCache<PromiseWrapper<TClientFieldValue>>(
|
91
|
+
environment,
|
92
|
+
cacheKey,
|
93
|
+
factory,
|
94
|
+
);
|
88
95
|
}
|
89
96
|
|
90
97
|
type NetworkRequestStatus =
|
@@ -2,35 +2,26 @@ import {
|
|
2
2
|
UnassignedState,
|
3
3
|
useUpdatableDisposableState,
|
4
4
|
} from '@isograph/react-disposable-state';
|
5
|
-
import {
|
6
|
-
ExtractReadFromStore,
|
7
|
-
ExtractResolverResult,
|
8
|
-
IsographEntrypoint,
|
9
|
-
} from './entrypoint';
|
5
|
+
import { IsographEntrypoint } from './entrypoint';
|
10
6
|
import { FragmentReference } from './FragmentReference';
|
11
7
|
import { useIsographEnvironment } from './IsographEnvironmentProvider';
|
12
8
|
import { makeNetworkRequest } from './cache';
|
13
9
|
import { ROOT_ID } from './IsographEnvironment';
|
14
10
|
|
15
11
|
export function useImperativeReference<
|
16
|
-
|
12
|
+
TReadFromStore extends Object,
|
13
|
+
TClientFieldValue,
|
17
14
|
>(
|
18
|
-
entrypoint:
|
15
|
+
entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>,
|
19
16
|
): {
|
20
17
|
queryReference:
|
21
|
-
| FragmentReference<
|
22
|
-
ExtractReadFromStore<TEntrypoint>,
|
23
|
-
ExtractResolverResult<TEntrypoint>
|
24
|
-
>
|
18
|
+
| FragmentReference<TReadFromStore, TClientFieldValue>
|
25
19
|
| UnassignedState;
|
26
20
|
loadQueryReference: (variables: { [index: string]: string }) => void;
|
27
21
|
} {
|
28
22
|
const { state, setState } =
|
29
23
|
useUpdatableDisposableState<
|
30
|
-
FragmentReference<
|
31
|
-
ExtractReadFromStore<TEntrypoint>,
|
32
|
-
ExtractResolverResult<TEntrypoint>
|
33
|
-
>
|
24
|
+
FragmentReference<TReadFromStore, TClientFieldValue>
|
34
25
|
>();
|
35
26
|
const environment = useIsographEnvironment();
|
36
27
|
return {
|
package/src/useLazyReference.ts
CHANGED
@@ -1,50 +1,25 @@
|
|
1
1
|
import { FragmentReference, Variable } from './FragmentReference';
|
2
2
|
import { useIsographEnvironment } from './IsographEnvironmentProvider';
|
3
3
|
import { ROOT_ID } from './IsographEnvironment';
|
4
|
-
import {
|
5
|
-
ExtractReadFromStore,
|
6
|
-
ExtractResolverResult,
|
7
|
-
assertIsEntrypoint,
|
8
|
-
} from './entrypoint';
|
4
|
+
import { IsographEntrypoint } from './entrypoint';
|
9
5
|
import { getOrCreateCacheForArtifact } from './cache';
|
10
6
|
import { useLazyDisposableState } from '@isograph/react-disposable-state';
|
11
|
-
import { type PromiseWrapper } from './PromiseWrapper';
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
entrypoint:
|
19
|
-
| TEntrypoint
|
20
|
-
// Temporarily, we need to allow useLazyReference to take the result of calling
|
21
|
-
// iso(`...`). At runtime, we confirm that the passed-in `iso` literal is actually
|
22
|
-
// an entrypoint.
|
23
|
-
| ((_: any) => any),
|
8
|
+
export function useLazyReference<
|
9
|
+
TReadFromStore extends Object,
|
10
|
+
TClientFieldValue,
|
11
|
+
>(
|
12
|
+
entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>,
|
24
13
|
variables: { [key: string]: Variable },
|
25
14
|
): {
|
26
|
-
queryReference: FragmentReference<
|
27
|
-
ExtractReadFromStore<TEntrypoint>,
|
28
|
-
ExtractResolverResult<TEntrypoint>
|
29
|
-
>;
|
15
|
+
queryReference: FragmentReference<TReadFromStore, TClientFieldValue>;
|
30
16
|
} {
|
31
17
|
const environment = useIsographEnvironment();
|
32
|
-
|
33
|
-
ExtractReadFromStore<TEntrypoint>,
|
34
|
-
ExtractResolverResult<TEntrypoint>
|
35
|
-
>(entrypoint);
|
36
|
-
const cache = getOrCreateCacheForArtifact<ExtractResolverResult<TEntrypoint>>(
|
37
|
-
environment,
|
38
|
-
entrypoint,
|
39
|
-
variables,
|
40
|
-
);
|
18
|
+
const cache = getOrCreateCacheForArtifact(environment, entrypoint, variables);
|
41
19
|
|
42
20
|
// TODO add comment explaining why we never use this value
|
43
|
-
// @ts-ignore
|
44
|
-
const
|
45
|
-
useLazyDisposableState<PromiseWrapper<ExtractResolverResult<TEntrypoint>>>(
|
46
|
-
cache,
|
47
|
-
).state;
|
21
|
+
// @ts-ignore(6133)
|
22
|
+
const _data = useLazyDisposableState(cache).state;
|
48
23
|
|
49
24
|
return {
|
50
25
|
queryReference: {
|