@isograph/react 0.0.0-main-4b202045 → 0.0.0-main-05aaa6a2
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/FragmentReference.d.ts +2 -2
- package/dist/IsographEnvironment.d.ts +2 -2
- package/dist/IsographEnvironment.js +1 -1
- package/dist/entrypoint.d.ts +3 -3
- package/dist/read.d.ts +1 -1
- package/dist/reader.d.ts +2 -2
- package/dist/reader.js +0 -1
- package/dist/useLazyReference.js +2 -2
- package/dist/useResult.d.ts +1 -1
- package/package.json +3 -3
- package/src/FragmentReference.ts +2 -2
- package/src/IsographEnvironment.tsx +3 -3
- package/src/entrypoint.ts +5 -5
- package/src/read.ts +3 -3
- package/src/reader.ts +3 -4
- package/src/useLazyReference.ts +1 -1
- package/src/useResult.ts +3 -3
- /package/src/{cache.tsx → cache.ts} +0 -0
- /package/src/{index.tsx → index.ts} +0 -0
@@ -2,9 +2,9 @@ import { DataId } from './IsographEnvironment';
|
|
2
2
|
import { RefetchQueryArtifactWrapper } from './entrypoint';
|
3
3
|
import { ReaderArtifact } from './reader';
|
4
4
|
export type Variable = any;
|
5
|
-
export type FragmentReference<TReadFromStore extends Object,
|
5
|
+
export type FragmentReference<TReadFromStore extends Object, TClientFieldValue> = {
|
6
6
|
kind: 'FragmentReference';
|
7
|
-
readerArtifact: ReaderArtifact<TReadFromStore,
|
7
|
+
readerArtifact: ReaderArtifact<TReadFromStore, TClientFieldValue>;
|
8
8
|
root: DataId;
|
9
9
|
variables: {
|
10
10
|
[index: string]: Variable;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/// <reference types="react" />
|
2
|
-
import { ParentCache } from '@isograph/
|
2
|
+
import { ParentCache } from '@isograph/react-disposable-state';
|
3
3
|
import { RetainedQuery } from './garbageCollection';
|
4
4
|
type ComponentName = string;
|
5
5
|
type StringifiedArgs = string;
|
@@ -54,5 +54,5 @@ export declare function defaultMissingFieldHandler(_storeRecord: StoreRecord, _r
|
|
54
54
|
} | null, variables: {
|
55
55
|
[index: string]: any;
|
56
56
|
} | null): Link | undefined;
|
57
|
-
export declare function assertLink(link: DataTypeValue): Link | null;
|
57
|
+
export declare function assertLink(link: DataTypeValue): Link | null | undefined;
|
58
58
|
export {};
|
package/dist/entrypoint.d.ts
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
import { ReaderArtifact } from './reader';
|
2
2
|
import { Arguments } from './util';
|
3
|
-
export type IsographEntrypoint<TReadFromStore extends Object,
|
3
|
+
export type IsographEntrypoint<TReadFromStore extends Object, TClientFieldValue> = {
|
4
4
|
kind: 'Entrypoint';
|
5
5
|
queryText: string;
|
6
6
|
normalizationAst: NormalizationAst;
|
7
|
-
readerArtifact: ReaderArtifact<TReadFromStore,
|
7
|
+
readerArtifact: ReaderArtifact<TReadFromStore, TClientFieldValue>;
|
8
8
|
nestedRefetchQueries: RefetchQueryArtifactWrapper[];
|
9
9
|
};
|
10
10
|
export type NormalizationAstNode = NormalizationScalarField | NormalizationLinkedField;
|
@@ -29,6 +29,6 @@ export type RefetchQueryArtifactWrapper = {
|
|
29
29
|
artifact: RefetchQueryArtifact;
|
30
30
|
allowedVariables: string[];
|
31
31
|
};
|
32
|
-
export declare function assertIsEntrypoint<TReadFromStore extends Object,
|
32
|
+
export declare function assertIsEntrypoint<TReadFromStore extends Object, TClientFieldValue>(value: IsographEntrypoint<TReadFromStore, TClientFieldValue> | ((_: any) => any) | any): asserts value is IsographEntrypoint<TReadFromStore, TClientFieldValue>;
|
33
33
|
export type ExtractReadFromStore<Type> = Type extends IsographEntrypoint<infer X, any> ? X : never;
|
34
34
|
export type ExtractResolverResult<Type> = Type extends IsographEntrypoint<any, infer X> ? X : never;
|
package/dist/read.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
import { FragmentReference } from './FragmentReference';
|
2
2
|
import { IsographEnvironment } from './IsographEnvironment';
|
3
|
-
export declare function read<TReadFromStore extends Object,
|
3
|
+
export declare function read<TReadFromStore extends Object, TClientFieldValue>(environment: IsographEnvironment, fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>): TClientFieldValue;
|
4
4
|
export declare function readButDoNotEvaluate<TReadFromStore extends Object>(environment: IsographEnvironment, reference: FragmentReference<TReadFromStore, unknown>): TReadFromStore;
|
package/dist/reader.d.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import { Arguments } from './util';
|
2
|
-
export type ReaderArtifact<TReadFromStore extends Object,
|
2
|
+
export type ReaderArtifact<TReadFromStore extends Object, TClientFieldValue> = {
|
3
3
|
kind: 'ReaderArtifact';
|
4
4
|
readerAst: ReaderAst<TReadFromStore>;
|
5
|
-
resolver: (data: TReadFromStore, runtimeProps: any) =>
|
5
|
+
resolver: (data: TReadFromStore, runtimeProps: any) => TClientFieldValue;
|
6
6
|
variant: ReaderResolverVariant;
|
7
7
|
};
|
8
8
|
export type ReaderAstNode = ReaderScalarField | ReaderLinkedField | ReaderResolverField | ReaderRefetchField | ReaderMutationField;
|
package/dist/reader.js
CHANGED
package/dist/useLazyReference.js
CHANGED
@@ -5,7 +5,7 @@ const IsographEnvironmentProvider_1 = require("./IsographEnvironmentProvider");
|
|
5
5
|
const IsographEnvironment_1 = require("./IsographEnvironment");
|
6
6
|
const entrypoint_1 = require("./entrypoint");
|
7
7
|
const cache_1 = require("./cache");
|
8
|
-
const
|
8
|
+
const react_disposable_state_1 = require("@isograph/react-disposable-state");
|
9
9
|
// Note: we cannot write TEntrypoint extends IsographEntrypoint<any, any, any>, or else
|
10
10
|
// if we do not explicitly pass a type, the read out type will be any.
|
11
11
|
// We cannot write TEntrypoint extends IsographEntrypoint<never, never, never>, or else
|
@@ -16,7 +16,7 @@ function useLazyReference(entrypoint, variables) {
|
|
16
16
|
const cache = (0, cache_1.getOrCreateCacheForArtifact)(environment, entrypoint, variables);
|
17
17
|
// TODO add comment explaining why we never use this value
|
18
18
|
// @ts-ignore
|
19
|
-
const data = (0,
|
19
|
+
const data = (0, react_disposable_state_1.useLazyDisposableState)(cache).state;
|
20
20
|
return {
|
21
21
|
queryReference: {
|
22
22
|
kind: 'FragmentReference',
|
package/dist/useResult.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
import { FragmentReference } from './FragmentReference';
|
2
|
-
export declare function useResult<TReadFromStore extends Object,
|
2
|
+
export declare function useResult<TReadFromStore extends Object, TClientFieldValue>(fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>): TClientFieldValue;
|
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-05aaa6a2",
|
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-05aaa6a2",
|
20
|
+
"@isograph/react-disposable-state": "0.0.0-main-05aaa6a2",
|
21
21
|
"react": "^18.2.0"
|
22
22
|
},
|
23
23
|
"devDependencies": {
|
package/src/FragmentReference.ts
CHANGED
@@ -7,10 +7,10 @@ export type Variable = any;
|
|
7
7
|
|
8
8
|
export type FragmentReference<
|
9
9
|
TReadFromStore extends Object,
|
10
|
-
|
10
|
+
TClientFieldValue,
|
11
11
|
> = {
|
12
12
|
kind: 'FragmentReference';
|
13
|
-
readerArtifact: ReaderArtifact<TReadFromStore,
|
13
|
+
readerArtifact: ReaderArtifact<TReadFromStore, TClientFieldValue>;
|
14
14
|
root: DataId;
|
15
15
|
variables: { [index: string]: Variable } | null;
|
16
16
|
// TODO: We should instead have ReaderAst<TResolverProps>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ParentCache } from '@isograph/
|
1
|
+
import { ParentCache } from '@isograph/react-disposable-state';
|
2
2
|
import { RetainedQuery } from './garbageCollection';
|
3
3
|
|
4
4
|
type ComponentName = string;
|
@@ -114,12 +114,12 @@ export function defaultMissingFieldHandler(
|
|
114
114
|
}
|
115
115
|
}
|
116
116
|
|
117
|
-
export function assertLink(link: DataTypeValue): Link | null {
|
117
|
+
export function assertLink(link: DataTypeValue): Link | null | undefined {
|
118
118
|
if (Array.isArray(link)) {
|
119
119
|
throw new Error('Unexpected array');
|
120
120
|
}
|
121
121
|
if (link == null) {
|
122
|
-
return
|
122
|
+
return link;
|
123
123
|
}
|
124
124
|
if (typeof link === 'object') {
|
125
125
|
return link;
|
package/src/entrypoint.ts
CHANGED
@@ -4,12 +4,12 @@ import { Arguments } from './util';
|
|
4
4
|
// This type should be treated as an opaque type.
|
5
5
|
export type IsographEntrypoint<
|
6
6
|
TReadFromStore extends Object,
|
7
|
-
|
7
|
+
TClientFieldValue,
|
8
8
|
> = {
|
9
9
|
kind: 'Entrypoint';
|
10
10
|
queryText: string;
|
11
11
|
normalizationAst: NormalizationAst;
|
12
|
-
readerArtifact: ReaderArtifact<TReadFromStore,
|
12
|
+
readerArtifact: ReaderArtifact<TReadFromStore, TClientFieldValue>;
|
13
13
|
nestedRefetchQueries: RefetchQueryArtifactWrapper[];
|
14
14
|
};
|
15
15
|
|
@@ -46,15 +46,15 @@ export type RefetchQueryArtifactWrapper = {
|
|
46
46
|
|
47
47
|
export function assertIsEntrypoint<
|
48
48
|
TReadFromStore extends Object,
|
49
|
-
|
49
|
+
TClientFieldValue,
|
50
50
|
>(
|
51
51
|
value:
|
52
|
-
| IsographEntrypoint<TReadFromStore,
|
52
|
+
| IsographEntrypoint<TReadFromStore, TClientFieldValue>
|
53
53
|
| ((_: any) => any)
|
54
54
|
// Temporarily, allow any here. Once we automatically provide
|
55
55
|
// types to entrypoints, we probably don't need this.
|
56
56
|
| any,
|
57
|
-
): asserts value is IsographEntrypoint<TReadFromStore,
|
57
|
+
): asserts value is IsographEntrypoint<TReadFromStore, TClientFieldValue> {
|
58
58
|
if (typeof value === 'function') throw new Error('Not a string');
|
59
59
|
}
|
60
60
|
|
package/src/read.ts
CHANGED
@@ -10,10 +10,10 @@ import {
|
|
10
10
|
} from './IsographEnvironment';
|
11
11
|
import { ReaderAst } from './reader';
|
12
12
|
|
13
|
-
export function read<TReadFromStore extends Object,
|
13
|
+
export function read<TReadFromStore extends Object, TClientFieldValue>(
|
14
14
|
environment: IsographEnvironment,
|
15
|
-
fragmentReference: FragmentReference<TReadFromStore,
|
16
|
-
):
|
15
|
+
fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>,
|
16
|
+
): TClientFieldValue {
|
17
17
|
const variant = fragmentReference.readerArtifact.variant;
|
18
18
|
if (variant.kind === 'Eager') {
|
19
19
|
const data = readData(
|
package/src/reader.ts
CHANGED
@@ -1,12 +1,11 @@
|
|
1
|
-
// TODO this should probably be at least three distinct types, for @component,
|
2
|
-
|
3
1
|
import { Arguments } from './util';
|
4
2
|
|
3
|
+
// TODO this should probably be at least three distinct types, for @component,
|
5
4
|
// non-@component and refetch resolvers
|
6
|
-
export type ReaderArtifact<TReadFromStore extends Object,
|
5
|
+
export type ReaderArtifact<TReadFromStore extends Object, TClientFieldValue> = {
|
7
6
|
kind: 'ReaderArtifact';
|
8
7
|
readerAst: ReaderAst<TReadFromStore>;
|
9
|
-
resolver: (data: TReadFromStore, runtimeProps: any) =>
|
8
|
+
resolver: (data: TReadFromStore, runtimeProps: any) => TClientFieldValue;
|
10
9
|
variant: ReaderResolverVariant;
|
11
10
|
};
|
12
11
|
|
package/src/useLazyReference.ts
CHANGED
@@ -7,7 +7,7 @@ import {
|
|
7
7
|
assertIsEntrypoint,
|
8
8
|
} from './entrypoint';
|
9
9
|
import { getOrCreateCacheForArtifact } from './cache';
|
10
|
-
import { useLazyDisposableState } from '@isograph/
|
10
|
+
import { useLazyDisposableState } from '@isograph/react-disposable-state';
|
11
11
|
import { type PromiseWrapper } from './PromiseWrapper';
|
12
12
|
|
13
13
|
// Note: we cannot write TEntrypoint extends IsographEntrypoint<any, any, any>, or else
|
package/src/useResult.ts
CHANGED
@@ -4,9 +4,9 @@ import { subscribe } from './cache';
|
|
4
4
|
import { read } from './read';
|
5
5
|
import { FragmentReference } from './FragmentReference';
|
6
6
|
|
7
|
-
export function useResult<TReadFromStore extends Object,
|
8
|
-
fragmentReference: FragmentReference<TReadFromStore,
|
9
|
-
):
|
7
|
+
export function useResult<TReadFromStore extends Object, TClientFieldValue>(
|
8
|
+
fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>,
|
9
|
+
): TClientFieldValue {
|
10
10
|
const environment = useIsographEnvironment();
|
11
11
|
|
12
12
|
const [, setState] = useState<object | void>();
|
File without changes
|
File without changes
|