@isograph/react 0.0.0-main-dd7a276d → 0.0.0-main-043fded2
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/cache.js +2 -2
- package/dist/core/entrypoint.d.ts +7 -2
- package/dist/core/makeNetworkRequest.js +3 -1
- package/dist/core/read.js +3 -2
- package/dist/react/useImperativeReference.js +2 -2
- package/package.json +4 -4
- package/src/core/cache.ts +3 -2
- package/src/core/entrypoint.ts +16 -5
- package/src/core/makeNetworkRequest.ts +3 -1
- package/src/core/read.ts +5 -2
- package/src/react/useImperativeReference.ts +3 -2
- package/src/tests/__isograph/Query/meName/entrypoint.ts +6 -3
- package/src/tests/__isograph/Query/meNameSuccessor/entrypoint.ts +6 -3
- package/src/tests/__isograph/Query/nodeField/entrypoint.ts +6 -3
package/dist/core/cache.js
CHANGED
@@ -51,10 +51,10 @@ function getOrCreateCacheForArtifact(environment, entrypoint, variables) {
|
|
51
51
|
const itemCleanupPair = [
|
52
52
|
{
|
53
53
|
kind: 'FragmentReference',
|
54
|
-
readerArtifact: entrypoint.readerArtifact,
|
54
|
+
readerArtifact: entrypoint.readerWithRefetchQueries.readerArtifact,
|
55
55
|
root: IsographEnvironment_1.ROOT_ID,
|
56
56
|
variables,
|
57
|
-
nestedRefetchQueries: entrypoint.nestedRefetchQueries,
|
57
|
+
nestedRefetchQueries: entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
58
58
|
networkRequest: networkRequest,
|
59
59
|
},
|
60
60
|
disposeNetworkRequest,
|
@@ -1,12 +1,16 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { TopLevelReaderArtifact } from './reader';
|
3
3
|
import { Arguments } from './util';
|
4
|
+
type ReaderWithRefetchQueries<TReadFromStore extends Object, TClientFieldValue> = {
|
5
|
+
readonly kind: 'ReaderWithRefetchQueries';
|
6
|
+
readonly readerArtifact: TopLevelReaderArtifact<TReadFromStore, TClientFieldValue, any>;
|
7
|
+
readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
|
8
|
+
};
|
4
9
|
export type IsographEntrypoint<TReadFromStore extends Object, TClientFieldValue> = {
|
5
10
|
readonly kind: 'Entrypoint';
|
6
11
|
readonly queryText: string;
|
7
12
|
readonly normalizationAst: NormalizationAst;
|
8
|
-
readonly
|
9
|
-
readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
|
13
|
+
readonly readerWithRefetchQueries: ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>;
|
10
14
|
};
|
11
15
|
export type NormalizationAstNode = NormalizationScalarField | NormalizationLinkedField | NormalizationInlineFragment;
|
12
16
|
export type NormalizationAst = ReadonlyArray<NormalizationAstNode>;
|
@@ -39,3 +43,4 @@ export declare function assertIsEntrypoint<TReadFromStore extends Object, TClien
|
|
39
43
|
export type ExtractReadFromStore<Type> = Type extends IsographEntrypoint<infer X, any> ? X : never;
|
40
44
|
export type ExtractResolverResult<Type> = Type extends IsographEntrypoint<any, infer X> ? X : never;
|
41
45
|
export type ExtractProps<Type> = Type extends React.FC<infer X> ? X : never;
|
46
|
+
export {};
|
@@ -28,7 +28,9 @@ function makeNetworkRequest(environment, artifact, variables) {
|
|
28
28
|
});
|
29
29
|
}
|
30
30
|
if (status.kind === 'UndisposedIncomplete') {
|
31
|
-
(0, cache_1.normalizeData)(environment, artifact.normalizationAst, (_a = networkResponse.data) !== null && _a !== void 0 ? _a : {}, variables, artifact.kind === 'Entrypoint'
|
31
|
+
(0, cache_1.normalizeData)(environment, artifact.normalizationAst, (_a = networkResponse.data) !== null && _a !== void 0 ? _a : {}, variables, artifact.kind === 'Entrypoint'
|
32
|
+
? artifact.readerWithRefetchQueries.nestedRefetchQueries
|
33
|
+
: []);
|
32
34
|
const retainedQuery = {
|
33
35
|
normalizationAst: artifact.normalizationAst,
|
34
36
|
variables,
|
package/dist/core/read.js
CHANGED
@@ -249,11 +249,12 @@ function readData(environment, ast, root, variables, nestedRefetchQueries, netwo
|
|
249
249
|
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.makeNetworkRequest)(environment, field.entrypoint, localVariables);
|
250
250
|
const fragmentReference = {
|
251
251
|
kind: 'FragmentReference',
|
252
|
-
readerArtifact: field.entrypoint.readerArtifact,
|
252
|
+
readerArtifact: field.entrypoint.readerWithRefetchQueries.readerArtifact,
|
253
253
|
// TODO localVariables is not guaranteed to have an id field
|
254
254
|
root: localVariables.id,
|
255
255
|
variables: localVariables,
|
256
|
-
nestedRefetchQueries: field.entrypoint.
|
256
|
+
nestedRefetchQueries: field.entrypoint.readerWithRefetchQueries
|
257
|
+
.nestedRefetchQueries,
|
257
258
|
networkRequest,
|
258
259
|
};
|
259
260
|
return [fragmentReference, disposeNetworkRequest];
|
@@ -15,10 +15,10 @@ function useImperativeReference(entrypoint) {
|
|
15
15
|
setState([
|
16
16
|
{
|
17
17
|
kind: 'FragmentReference',
|
18
|
-
readerArtifact: entrypoint.readerArtifact,
|
18
|
+
readerArtifact: entrypoint.readerWithRefetchQueries.readerArtifact,
|
19
19
|
root: IsographEnvironment_1.ROOT_ID,
|
20
20
|
variables,
|
21
|
-
nestedRefetchQueries: entrypoint.nestedRefetchQueries,
|
21
|
+
nestedRefetchQueries: entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
22
22
|
networkRequest,
|
23
23
|
},
|
24
24
|
() => {
|
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-043fded2",
|
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-043fded2",
|
21
|
+
"@isograph/react-disposable-state": "0.0.0-main-043fded2",
|
22
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-043fded2"
|
23
23
|
},
|
24
24
|
"peerDependencies": {
|
25
25
|
"react": "18.2.0"
|
package/src/core/cache.ts
CHANGED
@@ -95,10 +95,11 @@ export function getOrCreateCacheForArtifact<
|
|
95
95
|
> = [
|
96
96
|
{
|
97
97
|
kind: 'FragmentReference',
|
98
|
-
readerArtifact: entrypoint.readerArtifact,
|
98
|
+
readerArtifact: entrypoint.readerWithRefetchQueries.readerArtifact,
|
99
99
|
root: ROOT_ID,
|
100
100
|
variables,
|
101
|
-
nestedRefetchQueries:
|
101
|
+
nestedRefetchQueries:
|
102
|
+
entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
102
103
|
networkRequest: networkRequest,
|
103
104
|
},
|
104
105
|
disposeNetworkRequest,
|
package/src/core/entrypoint.ts
CHANGED
@@ -1,14 +1,11 @@
|
|
1
1
|
import { TopLevelReaderArtifact } from './reader';
|
2
2
|
import { Arguments } from './util';
|
3
3
|
|
4
|
-
|
5
|
-
export type IsographEntrypoint<
|
4
|
+
type ReaderWithRefetchQueries<
|
6
5
|
TReadFromStore extends Object,
|
7
6
|
TClientFieldValue,
|
8
7
|
> = {
|
9
|
-
readonly kind: '
|
10
|
-
readonly queryText: string;
|
11
|
-
readonly normalizationAst: NormalizationAst;
|
8
|
+
readonly kind: 'ReaderWithRefetchQueries';
|
12
9
|
readonly readerArtifact: TopLevelReaderArtifact<
|
13
10
|
TReadFromStore,
|
14
11
|
TClientFieldValue,
|
@@ -18,6 +15,20 @@ export type IsographEntrypoint<
|
|
18
15
|
readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
|
19
16
|
};
|
20
17
|
|
18
|
+
// This type should be treated as an opaque type.
|
19
|
+
export type IsographEntrypoint<
|
20
|
+
TReadFromStore extends Object,
|
21
|
+
TClientFieldValue,
|
22
|
+
> = {
|
23
|
+
readonly kind: 'Entrypoint';
|
24
|
+
readonly queryText: string;
|
25
|
+
readonly normalizationAst: NormalizationAst;
|
26
|
+
readonly readerWithRefetchQueries: ReaderWithRefetchQueries<
|
27
|
+
TReadFromStore,
|
28
|
+
TClientFieldValue
|
29
|
+
>;
|
30
|
+
};
|
31
|
+
|
21
32
|
export type NormalizationAstNode =
|
22
33
|
| NormalizationScalarField
|
23
34
|
| NormalizationLinkedField
|
@@ -48,7 +48,9 @@ export function makeNetworkRequest(
|
|
48
48
|
artifact.normalizationAst,
|
49
49
|
networkResponse.data ?? {},
|
50
50
|
variables,
|
51
|
-
artifact.kind === 'Entrypoint'
|
51
|
+
artifact.kind === 'Entrypoint'
|
52
|
+
? artifact.readerWithRefetchQueries.nestedRefetchQueries
|
53
|
+
: [],
|
52
54
|
);
|
53
55
|
const retainedQuery = {
|
54
56
|
normalizationAst: artifact.normalizationAst,
|
package/src/core/read.ts
CHANGED
@@ -372,11 +372,14 @@ function readData<TReadFromStore>(
|
|
372
372
|
);
|
373
373
|
const fragmentReference: FragmentReference<any, any> = {
|
374
374
|
kind: 'FragmentReference',
|
375
|
-
readerArtifact:
|
375
|
+
readerArtifact:
|
376
|
+
field.entrypoint.readerWithRefetchQueries.readerArtifact,
|
376
377
|
// TODO localVariables is not guaranteed to have an id field
|
377
378
|
root: localVariables.id,
|
378
379
|
variables: localVariables,
|
379
|
-
nestedRefetchQueries:
|
380
|
+
nestedRefetchQueries:
|
381
|
+
field.entrypoint.readerWithRefetchQueries
|
382
|
+
.nestedRefetchQueries,
|
380
383
|
networkRequest,
|
381
384
|
};
|
382
385
|
return [fragmentReference, disposeNetworkRequest];
|
@@ -35,10 +35,11 @@ export function useImperativeReference<
|
|
35
35
|
setState([
|
36
36
|
{
|
37
37
|
kind: 'FragmentReference',
|
38
|
-
readerArtifact: entrypoint.readerArtifact,
|
38
|
+
readerArtifact: entrypoint.readerWithRefetchQueries.readerArtifact,
|
39
39
|
root: ROOT_ID,
|
40
40
|
variables,
|
41
|
-
nestedRefetchQueries:
|
41
|
+
nestedRefetchQueries:
|
42
|
+
entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
42
43
|
networkRequest,
|
43
44
|
},
|
44
45
|
() => {
|
@@ -37,8 +37,11 @@ const artifact: IsographEntrypoint<
|
|
37
37
|
kind: "Entrypoint",
|
38
38
|
queryText,
|
39
39
|
normalizationAst,
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
readerWithRefetchQueries: {
|
41
|
+
kind: "ReaderWithRefetchQueries",
|
42
|
+
nestedRefetchQueries,
|
43
|
+
readerArtifact: readerResolver,
|
44
|
+
}
|
45
|
+
};
|
43
46
|
|
44
47
|
export default artifact;
|
@@ -73,8 +73,11 @@ const artifact: IsographEntrypoint<
|
|
73
73
|
kind: "Entrypoint",
|
74
74
|
queryText,
|
75
75
|
normalizationAst,
|
76
|
-
|
77
|
-
|
78
|
-
|
76
|
+
readerWithRefetchQueries: {
|
77
|
+
kind: "ReaderWithRefetchQueries",
|
78
|
+
nestedRefetchQueries,
|
79
|
+
readerArtifact: readerResolver,
|
80
|
+
}
|
81
|
+
};
|
79
82
|
|
80
83
|
export default artifact;
|
@@ -36,8 +36,11 @@ const artifact: IsographEntrypoint<
|
|
36
36
|
kind: "Entrypoint",
|
37
37
|
queryText,
|
38
38
|
normalizationAst,
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
readerWithRefetchQueries: {
|
40
|
+
kind: "ReaderWithRefetchQueries",
|
41
|
+
nestedRefetchQueries,
|
42
|
+
readerArtifact: readerResolver,
|
43
|
+
}
|
44
|
+
};
|
42
45
|
|
43
46
|
export default artifact;
|