@isograph/react 0.0.0-main-de7554c5 → 0.0.0-main-1ee228e6
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/areEqualWithDeepComparison.d.ts.map +1 -1
- package/dist/core/areEqualWithDeepComparison.js +16 -0
- package/dist/core/cache.d.ts +2 -2
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/check.d.ts +2 -2
- package/dist/core/check.d.ts.map +1 -1
- package/dist/core/entrypoint.d.ts +12 -8
- package/dist/core/entrypoint.d.ts.map +1 -1
- package/dist/core/garbageCollection.d.ts +2 -2
- package/dist/core/garbageCollection.d.ts.map +1 -1
- package/dist/core/logging.d.ts +2 -2
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.js +3 -3
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/read.js +4 -0
- package/dist/core/reader.d.ts +5 -1
- package/dist/core/reader.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/core/areEqualWithDeepComparison.ts +19 -0
- package/src/core/cache.ts +3 -3
- package/src/core/check.ts +3 -3
- package/src/core/entrypoint.ts +14 -7
- package/src/core/garbageCollection.ts +3 -3
- package/src/core/logging.ts +2 -2
- package/src/core/makeNetworkRequest.ts +4 -3
- package/src/core/read.ts +5 -0
- package/src/core/reader.ts +8 -1
- package/src/tests/__isograph/Query/meName/entrypoint.ts +23 -20
- package/src/tests/__isograph/Query/meNameSuccessor/entrypoint.ts +54 -51
- package/src/tests/__isograph/Query/nodeField/entrypoint.ts +27 -24
- package/src/tests/__isograph/Query/subquery/entrypoint.ts +35 -32
- package/src/tests/garbageCollection.test.ts +2 -1
- package/src/tests/meNameSuccessor.ts +1 -1
- package/src/tests/nodeQuery.ts +2 -1
- package/src/tests/normalizeData.test.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"areEqualWithDeepComparison.d.ts","sourceRoot":"","sources":["../../src/core/areEqualWithDeepComparison.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"areEqualWithDeepComparison.d.ts","sourceRoot":"","sources":["../../src/core/areEqualWithDeepComparison.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAChF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,EAC5C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf,OAAO,CAiCT;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,EAC5C,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GACvB,aAAa,CAAC,OAAO,CAAC,CAgBxB;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EACtB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,MAAM,CA+DR"}
|
|
@@ -80,6 +80,22 @@ function mergeObjectsUsingReaderAst(ast, oldItemObject, newItemObject) {
|
|
|
80
80
|
}
|
|
81
81
|
break;
|
|
82
82
|
}
|
|
83
|
+
case 'Link': {
|
|
84
|
+
const key = field.alias;
|
|
85
|
+
// @ts-expect-error
|
|
86
|
+
const oldValue = oldItemObject[key];
|
|
87
|
+
// @ts-expect-error
|
|
88
|
+
const newValue = newItemObject[key];
|
|
89
|
+
if (oldValue.__link !== newValue.__link ||
|
|
90
|
+
oldValue.__typename !== newValue.__typename) {
|
|
91
|
+
canRecycle = false;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// @ts-expect-error
|
|
95
|
+
newItemObject[key] = oldValue;
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
83
99
|
case 'ImperativelyLoadedField':
|
|
84
100
|
case 'LoadablySelectedField':
|
|
85
101
|
break;
|
package/dist/core/cache.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Factory, ParentCache } from '@isograph/react-disposable-state';
|
|
2
2
|
import { DataId, Link, type IsographEnvironment, type TypeName } from './IsographEnvironment';
|
|
3
|
-
import { IsographEntrypoint,
|
|
3
|
+
import { IsographEntrypoint, type NormalizationAstNodes, NormalizationLinkedField, NormalizationScalarField, RefetchQueryNormalizationArtifactWrapper } from '../core/entrypoint';
|
|
4
4
|
import { ReaderLinkedField, ReaderScalarField, type ReaderAst } from './reader';
|
|
5
5
|
import { WithEncounteredRecords } from './read';
|
|
6
6
|
import { FragmentReference, Variables, ExtractParameters } from './FragmentReference';
|
|
@@ -27,7 +27,7 @@ export type NetworkResponseObject = {
|
|
|
27
27
|
id?: DataId;
|
|
28
28
|
__typename?: TypeName;
|
|
29
29
|
};
|
|
30
|
-
export declare function normalizeData(environment: IsographEnvironment, normalizationAst:
|
|
30
|
+
export declare function normalizeData(environment: IsographEnvironment, normalizationAst: NormalizationAstNodes, networkResponse: NetworkResponseObject, variables: Variables, nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[], root: Link): EncounteredIds;
|
|
31
31
|
export declare function subscribeToAnyChange(environment: IsographEnvironment, callback: () => void): () => void;
|
|
32
32
|
export declare function subscribeToAnyChangesToRecord(environment: IsographEnvironment, recordLink: Link, callback: () => void): () => void;
|
|
33
33
|
export declare function subscribe<TReadFromStore extends {
|
package/dist/core/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,MAAM,EACN,IAAI,EAGJ,KAAK,mBAAmB,EAIxB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/core/check.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NormalizationAstNodes } from './entrypoint';
|
|
2
2
|
import { Variables } from './FragmentReference';
|
|
3
3
|
import { IsographEnvironment, Link } from './IsographEnvironment';
|
|
4
4
|
export type ShouldFetch = 'Yes' | 'No' | 'IfNecessary';
|
|
@@ -14,5 +14,5 @@ export type CheckResult = {
|
|
|
14
14
|
kind: 'MissingData';
|
|
15
15
|
record: Link;
|
|
16
16
|
};
|
|
17
|
-
export declare function check(environment: IsographEnvironment, normalizationAst:
|
|
17
|
+
export declare function check(environment: IsographEnvironment, normalizationAst: NormalizationAstNodes, variables: Variables, root: Link): CheckResult;
|
|
18
18
|
//# sourceMappingURL=check.d.ts.map
|
package/dist/core/check.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/core/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/core/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAEL,mBAAmB,EACnB,IAAI,EAEL,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,CAAC;AAEvD,eAAO,MAAM,0BAA0B,EAAE,WAA2B,CAAC;AAErE,MAAM,MAAM,YAAY,CAAC,YAAY,IAAI;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB;IACE,IAAI,EAAE,YAAY,CAAC;CACpB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEN,wBAAgB,KAAK,CACnB,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,qBAAqB,EACvC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,GACT,WAAW,CAgBb"}
|
|
@@ -9,17 +9,17 @@ export type ReaderWithRefetchQueries<TReadFromStore extends {
|
|
|
9
9
|
readonly readerArtifact: TopLevelReaderArtifact<TReadFromStore, TClientFieldValue, any>;
|
|
10
10
|
readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
|
|
11
11
|
};
|
|
12
|
-
export type NetworkRequestInfo = {
|
|
12
|
+
export type NetworkRequestInfo<TNormalizationAst> = {
|
|
13
13
|
readonly kind: 'NetworkRequestInfo';
|
|
14
14
|
readonly queryText: string;
|
|
15
|
-
readonly normalizationAst:
|
|
15
|
+
readonly normalizationAst: TNormalizationAst;
|
|
16
16
|
};
|
|
17
17
|
export type IsographEntrypoint<TReadFromStore extends {
|
|
18
18
|
parameters: object;
|
|
19
19
|
data: object;
|
|
20
|
-
}, TClientFieldValue> = {
|
|
20
|
+
}, TClientFieldValue, TNormalizationAst = NormalizationAst> = {
|
|
21
21
|
readonly kind: 'Entrypoint';
|
|
22
|
-
readonly networkRequestInfo: NetworkRequestInfo
|
|
22
|
+
readonly networkRequestInfo: NetworkRequestInfo<TNormalizationAst>;
|
|
23
23
|
readonly readerWithRefetchQueries: ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>;
|
|
24
24
|
readonly concreteType: TypeName;
|
|
25
25
|
};
|
|
@@ -32,7 +32,11 @@ export type IsographEntrypointLoader<TReadFromStore extends {
|
|
|
32
32
|
readonly loader: () => Promise<IsographEntrypoint<TReadFromStore, TClientFieldValue>>;
|
|
33
33
|
};
|
|
34
34
|
export type NormalizationAstNode = NormalizationScalarField | NormalizationLinkedField | NormalizationInlineFragment;
|
|
35
|
-
export type
|
|
35
|
+
export type NormalizationAstNodes = ReadonlyArray<NormalizationAstNode>;
|
|
36
|
+
export type NormalizationAst = {
|
|
37
|
+
kind: 'NormalizationAst';
|
|
38
|
+
selections: NormalizationAstNodes;
|
|
39
|
+
};
|
|
36
40
|
export type NormalizationScalarField = {
|
|
37
41
|
readonly kind: 'Scalar';
|
|
38
42
|
readonly fieldName: string;
|
|
@@ -42,17 +46,17 @@ export type NormalizationLinkedField = {
|
|
|
42
46
|
readonly kind: 'Linked';
|
|
43
47
|
readonly fieldName: string;
|
|
44
48
|
readonly arguments: Arguments | null;
|
|
45
|
-
readonly selections:
|
|
49
|
+
readonly selections: NormalizationAstNodes;
|
|
46
50
|
readonly concreteType: TypeName | null;
|
|
47
51
|
};
|
|
48
52
|
export type NormalizationInlineFragment = {
|
|
49
53
|
readonly kind: 'InlineFragment';
|
|
50
54
|
readonly type: string;
|
|
51
|
-
readonly selections:
|
|
55
|
+
readonly selections: NormalizationAstNodes;
|
|
52
56
|
};
|
|
53
57
|
export type RefetchQueryNormalizationArtifact = {
|
|
54
58
|
readonly kind: 'RefetchQuery';
|
|
55
|
-
readonly networkRequestInfo: NetworkRequestInfo
|
|
59
|
+
readonly networkRequestInfo: NetworkRequestInfo<NormalizationAst>;
|
|
56
60
|
readonly concreteType: TypeName;
|
|
57
61
|
};
|
|
58
62
|
export type RefetchQueryNormalizationArtifactWrapper = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../../src/core/entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,MAAM,wBAAwB,CAClC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,IACf;IACF,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAC7C,cAAc,EACd,iBAAiB,EAEjB,GAAG,CACJ,CAAC;IACF,QAAQ,CAAC,oBAAoB,EAAE,wCAAwC,EAAE,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../../src/core/entrypoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IsographEnvironment, type Link } from './IsographEnvironment';
|
|
2
|
-
import {
|
|
2
|
+
import { NormalizationAstNodes } from './entrypoint';
|
|
3
3
|
export type RetainedQuery = {
|
|
4
|
-
readonly normalizationAst:
|
|
4
|
+
readonly normalizationAst: NormalizationAstNodes;
|
|
5
5
|
readonly variables: {};
|
|
6
6
|
readonly root: Link;
|
|
7
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"garbageCollection.d.ts","sourceRoot":"","sources":["../../src/core/garbageCollection.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EAInB,KAAK,IAAI,EAEV,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"garbageCollection.d.ts","sourceRoot":"","sources":["../../src/core/garbageCollection.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EAInB,KAAK,IAAI,EAEV,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,oBAAoB,GAAG,OAAO,CAAC;AACpC,wBAAgB,aAAa,CAC3B,WAAW,EAAE,mBAAmB,EAChC,aAAa,EAAE,aAAa,GAC3B,oBAAoB,CAUtB;AAED,wBAAgB,WAAW,CACzB,WAAW,EAAE,mBAAmB,EAChC,aAAa,EAAE,aAAa,QAM7B;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,mBAAmB,QA+BzE"}
|
package/dist/core/logging.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CleanupFn } from '@isograph/disposable-types';
|
|
2
2
|
import { IsographEnvironment, IsographStore, StoreRecord, type Link } from './IsographEnvironment';
|
|
3
|
-
import { IsographEntrypoint,
|
|
3
|
+
import { IsographEntrypoint, type NormalizationAstNodes, RefetchQueryNormalizationArtifact } from './entrypoint';
|
|
4
4
|
import { FragmentReference, Variables } from './FragmentReference';
|
|
5
5
|
import { NetworkResponseObject, type EncounteredIds } from './cache';
|
|
6
6
|
import { Arguments } from './util';
|
|
@@ -13,7 +13,7 @@ export type LogMessage = {
|
|
|
13
13
|
found: boolean;
|
|
14
14
|
} | {
|
|
15
15
|
kind: 'AboutToNormalize';
|
|
16
|
-
normalizationAst:
|
|
16
|
+
normalizationAst: NormalizationAstNodes;
|
|
17
17
|
networkResponse: NetworkResponseObject;
|
|
18
18
|
variables: Variables;
|
|
19
19
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeNetworkRequest.d.ts","sourceRoot":"","sources":["../../src/core/makeNetworkRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,OAAO,EAAE,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAM1E,wBAAgB,uBAAuB,CACrC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACzD,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA8BjD;AAED,wBAAgB,kBAAkB,CAChC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACzD,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"makeNetworkRequest.d.ts","sourceRoot":"","sources":["../../src/core/makeNetworkRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,OAAO,EAAE,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAM1E,wBAAgB,uBAAuB,CACrC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACzD,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA8BjD;AAED,wBAAgB,kBAAkB,CAChC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,EACzD,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA8GjD"}
|
|
@@ -21,7 +21,7 @@ function maybeMakeNetworkRequest(environment, artifact, variables, fetchOptions)
|
|
|
21
21
|
return [(0, PromiseWrapper_1.wrapResolvedValue)(undefined), () => { }];
|
|
22
22
|
}
|
|
23
23
|
case 'IfNecessary': {
|
|
24
|
-
const result = (0, check_1.check)(environment, artifact.networkRequestInfo.normalizationAst, variables, {
|
|
24
|
+
const result = (0, check_1.check)(environment, artifact.networkRequestInfo.normalizationAst.selections, variables, {
|
|
25
25
|
__link: IsographEnvironment_1.ROOT_ID,
|
|
26
26
|
__typename: artifact.concreteType,
|
|
27
27
|
});
|
|
@@ -69,11 +69,11 @@ function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
|
|
|
69
69
|
}
|
|
70
70
|
const root = { __link: IsographEnvironment_1.ROOT_ID, __typename: artifact.concreteType };
|
|
71
71
|
if (status.kind === 'UndisposedIncomplete') {
|
|
72
|
-
(0, cache_1.normalizeData)(environment, artifact.networkRequestInfo.normalizationAst, (_b = networkResponse.data) !== null && _b !== void 0 ? _b : {}, variables, artifact.kind === 'Entrypoint'
|
|
72
|
+
(0, cache_1.normalizeData)(environment, artifact.networkRequestInfo.normalizationAst.selections, (_b = networkResponse.data) !== null && _b !== void 0 ? _b : {}, variables, artifact.kind === 'Entrypoint'
|
|
73
73
|
? artifact.readerWithRefetchQueries.nestedRefetchQueries
|
|
74
74
|
: [], root);
|
|
75
75
|
const retainedQuery = {
|
|
76
|
-
normalizationAst: artifact.networkRequestInfo.normalizationAst,
|
|
76
|
+
normalizationAst: artifact.networkRequestInfo.normalizationAst.selections,
|
|
77
77
|
variables,
|
|
78
78
|
root,
|
|
79
79
|
};
|
package/dist/core/read.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,iBAAiB,EAEjB,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAe/B,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAE3D,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,sBAAsB,CAAC,cAAc,CAAC,CAmDxC;AAED,MAAM,MAAM,cAAc,CAAC,cAAc,IACrC;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,iBAAiB,EAEjB,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAe/B,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAE3D,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,sBAAsB,CAAC,cAAc,CAAC,CAmDxC;AAED,MAAM,MAAM,cAAc,CAAC,cAAc,IACrC;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B,CAAC;AAglBN,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,IAAI,GAClE,2BAA2B,CAK7B"}
|
package/dist/core/read.js
CHANGED
|
@@ -82,6 +82,10 @@ function readData(environment, ast, root, variables, nestedRefetchQueries, netwo
|
|
|
82
82
|
target[(_b = field.alias) !== null && _b !== void 0 ? _b : field.fieldName] = value;
|
|
83
83
|
break;
|
|
84
84
|
}
|
|
85
|
+
case 'Link': {
|
|
86
|
+
target[field.alias] = root;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
85
89
|
case 'Linked': {
|
|
86
90
|
const storeRecordName = (0, cache_1.getParentRecordKey)(field, variables);
|
|
87
91
|
const value = storeRecord[storeRecordName];
|
package/dist/core/reader.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export type RefetchReaderArtifact = {
|
|
|
37
37
|
readonly readerAst: ReaderAst<unknown>;
|
|
38
38
|
readonly resolver: (environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact, variables: any, filteredVariables: any, rootLink: Link, readerArtifact: TopLevelReaderArtifact<any, any, any> | null, nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[]) => () => void;
|
|
39
39
|
};
|
|
40
|
-
export type ReaderAstNode = ReaderScalarField | ReaderLinkedField | ReaderNonLoadableResolverField | ReaderImperativelyLoadedField | ReaderLoadableField;
|
|
40
|
+
export type ReaderAstNode = ReaderScalarField | ReaderLinkedField | ReaderNonLoadableResolverField | ReaderImperativelyLoadedField | ReaderLoadableField | ReaderLinkeField;
|
|
41
41
|
export type ReaderAst<TReadFromStore> = ReadonlyArray<ReaderAstNode>;
|
|
42
42
|
export type ReaderScalarField = {
|
|
43
43
|
readonly kind: 'Scalar';
|
|
@@ -45,6 +45,10 @@ export type ReaderScalarField = {
|
|
|
45
45
|
readonly alias: string | null;
|
|
46
46
|
readonly arguments: Arguments | null;
|
|
47
47
|
};
|
|
48
|
+
export type ReaderLinkeField = {
|
|
49
|
+
readonly kind: 'Link';
|
|
50
|
+
readonly alias: string;
|
|
51
|
+
};
|
|
48
52
|
export type ReaderLinkedField = {
|
|
49
53
|
readonly kind: 'Linked';
|
|
50
54
|
readonly fieldName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/core/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iCAAiC,EACjC,wCAAwC,EACzC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,MAAM,sBAAsB,CAChC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EACjB,eAAe,SAAS,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAEhD,mBAAmB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GACtD,uBAAuB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,mBAAmB,CAC7B,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,IACf;IACF,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,sBAAsB,CAAC,cAAc,CAAC,KACzC,iBAAiB,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,CACjC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAC1E;IACF,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAC5C,YAAY,EAAE,eAAe,KAC1B,KAAK,CAAC,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAChC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,IACzD;IACF,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAClC,UAAU,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,CACjB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,iCAAiC,EAE3C,SAAS,EAAE,GAAG,EAEd,iBAAiB,EAAE,GAAG,EACtB,QAAQ,EAAE,IAAI,EACd,cAAc,EAAE,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAE5D,oBAAoB,EAAE,wCAAwC,EAAE,KAC7D,MAAM,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,iBAAiB,GACjB,8BAA8B,GAC9B,6BAA6B,GAC7B,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/core/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iCAAiC,EACjC,wCAAwC,EACzC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,MAAM,sBAAsB,CAChC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EACjB,eAAe,SAAS,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAEhD,mBAAmB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GACtD,uBAAuB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,mBAAmB,CAC7B,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,IACf;IACF,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,sBAAsB,CAAC,cAAc,CAAC,KACzC,iBAAiB,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,CACjC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAC1E;IACF,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAC5C,YAAY,EAAE,eAAe,KAC1B,KAAK,CAAC,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAChC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,IACzD;IACF,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAClC,UAAU,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,CACjB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,iCAAiC,EAE3C,SAAS,EAAE,GAAG,EAEd,iBAAiB,EAAE,GAAG,EACtB,QAAQ,EAAE,IAAI,EACd,cAAc,EAAE,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAE5D,oBAAoB,EAAE,wCAAwC,EAAE,KAC7D,MAAM,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,iBAAiB,GACjB,8BAA8B,GAC9B,6BAA6B,GAC7B,mBAAmB,GACnB,gBAAgB,CAAC;AAGrB,MAAM,MAAM,SAAS,CAAC,cAAc,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CACrC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EACpC,OAAO,GAAG,IAAI,GAAG,IAAI,CACtB,GAAG,IAAI,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/D,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAKvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAG1C,QAAQ,CAAC,UAAU,EACf,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,GAC5B,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACxC,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,CAAC;AAUvB,MAAM,MAAM,aAAa,CACvB,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,KAAK,GAAG,iBAAiB,CAAC,cAAc,CAAC,IACvC,CACF,IAAI,EAAE,KAAK,GAAG,IAAI,EAKlB,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,KAChC,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
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-1ee228e6",
|
|
4
4
|
"description": "Use Isograph with React",
|
|
5
5
|
"homepage": "https://isograph.dev",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"iso-watch": "../../target/debug/isograph_cli --config ./isograph.config.json --watch"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@isograph/disposable-types": "0.0.0-main-
|
|
23
|
-
"@isograph/react-disposable-state": "0.0.0-main-
|
|
24
|
-
"@isograph/reference-counted-pointer": "0.0.0-main-
|
|
22
|
+
"@isograph/disposable-types": "0.0.0-main-1ee228e6",
|
|
23
|
+
"@isograph/react-disposable-state": "0.0.0-main-1ee228e6",
|
|
24
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-1ee228e6"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": "18.3.1"
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Link } from './IsographEnvironment';
|
|
1
2
|
import type { ReaderAst, ReaderLinkedField, ReaderScalarField } from './reader';
|
|
2
3
|
export function mergeUsingReaderAst(
|
|
3
4
|
field: ReaderScalarField | ReaderLinkedField,
|
|
@@ -96,6 +97,24 @@ export function mergeObjectsUsingReaderAst(
|
|
|
96
97
|
}
|
|
97
98
|
break;
|
|
98
99
|
}
|
|
100
|
+
case 'Link': {
|
|
101
|
+
const key = field.alias;
|
|
102
|
+
// @ts-expect-error
|
|
103
|
+
const oldValue: Link = oldItemObject[key];
|
|
104
|
+
// @ts-expect-error
|
|
105
|
+
const newValue: Link = newItemObject[key];
|
|
106
|
+
|
|
107
|
+
if (
|
|
108
|
+
oldValue.__link !== newValue.__link ||
|
|
109
|
+
oldValue.__typename !== newValue.__typename
|
|
110
|
+
) {
|
|
111
|
+
canRecycle = false;
|
|
112
|
+
} else {
|
|
113
|
+
// @ts-expect-error
|
|
114
|
+
newItemObject[key] = oldValue;
|
|
115
|
+
}
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
99
118
|
case 'ImperativelyLoadedField':
|
|
100
119
|
case 'LoadablySelectedField':
|
|
101
120
|
break;
|
package/src/core/cache.ts
CHANGED
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from './IsographEnvironment';
|
|
17
17
|
import {
|
|
18
18
|
IsographEntrypoint,
|
|
19
|
-
|
|
19
|
+
type NormalizationAstNodes,
|
|
20
20
|
NormalizationInlineFragment,
|
|
21
21
|
NormalizationLinkedField,
|
|
22
22
|
NormalizationScalarField,
|
|
@@ -142,7 +142,7 @@ export type NetworkResponseObject = {
|
|
|
142
142
|
|
|
143
143
|
export function normalizeData(
|
|
144
144
|
environment: IsographEnvironment,
|
|
145
|
-
normalizationAst:
|
|
145
|
+
normalizationAst: NormalizationAstNodes,
|
|
146
146
|
networkResponse: NetworkResponseObject,
|
|
147
147
|
variables: Variables,
|
|
148
148
|
nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[],
|
|
@@ -376,7 +376,7 @@ export type EncounteredIds = Map<TypeName, Set<DataId>>;
|
|
|
376
376
|
*/
|
|
377
377
|
function normalizeDataIntoRecord(
|
|
378
378
|
environment: IsographEnvironment,
|
|
379
|
-
normalizationAst:
|
|
379
|
+
normalizationAst: NormalizationAstNodes,
|
|
380
380
|
networkResponseParentRecord: NetworkResponseObject,
|
|
381
381
|
targetParentRecord: StoreRecord,
|
|
382
382
|
targetParentRecordLink: Link,
|
package/src/core/check.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getParentRecordKey } from './cache';
|
|
2
|
-
import {
|
|
2
|
+
import { NormalizationAstNodes } from './entrypoint';
|
|
3
3
|
import { Variables } from './FragmentReference';
|
|
4
4
|
import {
|
|
5
5
|
getLink,
|
|
@@ -30,7 +30,7 @@ export type CheckResult =
|
|
|
30
30
|
|
|
31
31
|
export function check(
|
|
32
32
|
environment: IsographEnvironment,
|
|
33
|
-
normalizationAst:
|
|
33
|
+
normalizationAst: NormalizationAstNodes,
|
|
34
34
|
variables: Variables,
|
|
35
35
|
root: Link,
|
|
36
36
|
): CheckResult {
|
|
@@ -53,7 +53,7 @@ export function check(
|
|
|
53
53
|
|
|
54
54
|
function checkFromRecord(
|
|
55
55
|
environment: IsographEnvironment,
|
|
56
|
-
normalizationAst:
|
|
56
|
+
normalizationAst: NormalizationAstNodes,
|
|
57
57
|
variables: Variables,
|
|
58
58
|
record: StoreRecord,
|
|
59
59
|
recordLink: Link,
|
package/src/core/entrypoint.ts
CHANGED
|
@@ -16,18 +16,19 @@ export type ReaderWithRefetchQueries<
|
|
|
16
16
|
readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
export type NetworkRequestInfo = {
|
|
19
|
+
export type NetworkRequestInfo<TNormalizationAst> = {
|
|
20
20
|
readonly kind: 'NetworkRequestInfo';
|
|
21
21
|
readonly queryText: string;
|
|
22
|
-
readonly normalizationAst:
|
|
22
|
+
readonly normalizationAst: TNormalizationAst;
|
|
23
23
|
};
|
|
24
24
|
// This type should be treated as an opaque type.
|
|
25
25
|
export type IsographEntrypoint<
|
|
26
26
|
TReadFromStore extends { parameters: object; data: object },
|
|
27
27
|
TClientFieldValue,
|
|
28
|
+
TNormalizationAst = NormalizationAst,
|
|
28
29
|
> = {
|
|
29
30
|
readonly kind: 'Entrypoint';
|
|
30
|
-
readonly networkRequestInfo: NetworkRequestInfo
|
|
31
|
+
readonly networkRequestInfo: NetworkRequestInfo<TNormalizationAst>;
|
|
31
32
|
readonly readerWithRefetchQueries: ReaderWithRefetchQueries<
|
|
32
33
|
TReadFromStore,
|
|
33
34
|
TClientFieldValue
|
|
@@ -50,7 +51,13 @@ export type NormalizationAstNode =
|
|
|
50
51
|
| NormalizationScalarField
|
|
51
52
|
| NormalizationLinkedField
|
|
52
53
|
| NormalizationInlineFragment;
|
|
53
|
-
|
|
54
|
+
|
|
55
|
+
export type NormalizationAstNodes = ReadonlyArray<NormalizationAstNode>;
|
|
56
|
+
|
|
57
|
+
export type NormalizationAst = {
|
|
58
|
+
kind: 'NormalizationAst';
|
|
59
|
+
selections: NormalizationAstNodes;
|
|
60
|
+
};
|
|
54
61
|
|
|
55
62
|
export type NormalizationScalarField = {
|
|
56
63
|
readonly kind: 'Scalar';
|
|
@@ -62,20 +69,20 @@ export type NormalizationLinkedField = {
|
|
|
62
69
|
readonly kind: 'Linked';
|
|
63
70
|
readonly fieldName: string;
|
|
64
71
|
readonly arguments: Arguments | null;
|
|
65
|
-
readonly selections:
|
|
72
|
+
readonly selections: NormalizationAstNodes;
|
|
66
73
|
readonly concreteType: TypeName | null;
|
|
67
74
|
};
|
|
68
75
|
|
|
69
76
|
export type NormalizationInlineFragment = {
|
|
70
77
|
readonly kind: 'InlineFragment';
|
|
71
78
|
readonly type: string;
|
|
72
|
-
readonly selections:
|
|
79
|
+
readonly selections: NormalizationAstNodes;
|
|
73
80
|
};
|
|
74
81
|
|
|
75
82
|
// This is more like an entrypoint, but one specifically for a refetch query/mutation
|
|
76
83
|
export type RefetchQueryNormalizationArtifact = {
|
|
77
84
|
readonly kind: 'RefetchQuery';
|
|
78
|
-
readonly networkRequestInfo: NetworkRequestInfo
|
|
85
|
+
readonly networkRequestInfo: NetworkRequestInfo<NormalizationAst>;
|
|
79
86
|
readonly concreteType: TypeName;
|
|
80
87
|
};
|
|
81
88
|
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
type TypeName,
|
|
10
10
|
} from './IsographEnvironment';
|
|
11
11
|
import { getParentRecordKey } from './cache';
|
|
12
|
-
import {
|
|
12
|
+
import { NormalizationAstNodes } from './entrypoint';
|
|
13
13
|
|
|
14
14
|
export type RetainedQuery = {
|
|
15
|
-
readonly normalizationAst:
|
|
15
|
+
readonly normalizationAst: NormalizationAstNodes;
|
|
16
16
|
readonly variables: {};
|
|
17
17
|
readonly root: Link;
|
|
18
18
|
};
|
|
@@ -108,7 +108,7 @@ function recordReachableIdsFromRecord(
|
|
|
108
108
|
store: IsographStore,
|
|
109
109
|
currentRecord: StoreRecord,
|
|
110
110
|
mutableRetainedIds: RetainedIds,
|
|
111
|
-
selections:
|
|
111
|
+
selections: NormalizationAstNodes,
|
|
112
112
|
variables: Variables | null,
|
|
113
113
|
) {
|
|
114
114
|
for (const selection of selections) {
|
package/src/core/logging.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from './IsographEnvironment';
|
|
8
8
|
import {
|
|
9
9
|
IsographEntrypoint,
|
|
10
|
-
|
|
10
|
+
type NormalizationAstNodes,
|
|
11
11
|
RefetchQueryNormalizationArtifact,
|
|
12
12
|
} from './entrypoint';
|
|
13
13
|
import { FragmentReference, Variables } from './FragmentReference';
|
|
@@ -25,7 +25,7 @@ export type LogMessage =
|
|
|
25
25
|
}
|
|
26
26
|
| {
|
|
27
27
|
kind: 'AboutToNormalize';
|
|
28
|
-
normalizationAst:
|
|
28
|
+
normalizationAst: NormalizationAstNodes;
|
|
29
29
|
networkResponse: NetworkResponseObject;
|
|
30
30
|
variables: Variables;
|
|
31
31
|
}
|
|
@@ -46,7 +46,7 @@ export function maybeMakeNetworkRequest<
|
|
|
46
46
|
case 'IfNecessary': {
|
|
47
47
|
const result = check(
|
|
48
48
|
environment,
|
|
49
|
-
artifact.networkRequestInfo.normalizationAst,
|
|
49
|
+
artifact.networkRequestInfo.normalizationAst.selections,
|
|
50
50
|
variables,
|
|
51
51
|
{
|
|
52
52
|
__link: ROOT_ID,
|
|
@@ -116,7 +116,7 @@ export function makeNetworkRequest<
|
|
|
116
116
|
if (status.kind === 'UndisposedIncomplete') {
|
|
117
117
|
normalizeData(
|
|
118
118
|
environment,
|
|
119
|
-
artifact.networkRequestInfo.normalizationAst,
|
|
119
|
+
artifact.networkRequestInfo.normalizationAst.selections,
|
|
120
120
|
networkResponse.data ?? {},
|
|
121
121
|
variables,
|
|
122
122
|
artifact.kind === 'Entrypoint'
|
|
@@ -125,7 +125,8 @@ export function makeNetworkRequest<
|
|
|
125
125
|
root,
|
|
126
126
|
);
|
|
127
127
|
const retainedQuery = {
|
|
128
|
-
normalizationAst:
|
|
128
|
+
normalizationAst:
|
|
129
|
+
artifact.networkRequestInfo.normalizationAst.selections,
|
|
129
130
|
variables,
|
|
130
131
|
root,
|
|
131
132
|
};
|
package/src/core/read.ts
CHANGED
|
@@ -164,6 +164,10 @@ function readData<TReadFromStore>(
|
|
|
164
164
|
target[field.alias ?? field.fieldName] = value;
|
|
165
165
|
break;
|
|
166
166
|
}
|
|
167
|
+
case 'Link': {
|
|
168
|
+
target[field.alias] = root;
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
167
171
|
case 'Linked': {
|
|
168
172
|
const storeRecordName = getParentRecordKey(field, variables);
|
|
169
173
|
const value = storeRecord[storeRecordName];
|
|
@@ -610,6 +614,7 @@ function readData<TReadFromStore>(
|
|
|
610
614
|
}
|
|
611
615
|
break;
|
|
612
616
|
}
|
|
617
|
+
|
|
613
618
|
default: {
|
|
614
619
|
// Ensure we have covered all variants
|
|
615
620
|
let _: never = field;
|
package/src/core/reader.ts
CHANGED
|
@@ -79,7 +79,8 @@ export type ReaderAstNode =
|
|
|
79
79
|
| ReaderLinkedField
|
|
80
80
|
| ReaderNonLoadableResolverField
|
|
81
81
|
| ReaderImperativelyLoadedField
|
|
82
|
-
| ReaderLoadableField
|
|
82
|
+
| ReaderLoadableField
|
|
83
|
+
| ReaderLinkeField;
|
|
83
84
|
|
|
84
85
|
// @ts-ignore
|
|
85
86
|
export type ReaderAst<TReadFromStore> = ReadonlyArray<ReaderAstNode>;
|
|
@@ -90,6 +91,12 @@ export type ReaderScalarField = {
|
|
|
90
91
|
readonly alias: string | null;
|
|
91
92
|
readonly arguments: Arguments | null;
|
|
92
93
|
};
|
|
94
|
+
|
|
95
|
+
export type ReaderLinkeField = {
|
|
96
|
+
readonly kind: 'Link';
|
|
97
|
+
readonly alias: string;
|
|
98
|
+
};
|
|
99
|
+
|
|
93
100
|
export type ReaderLinkedField = {
|
|
94
101
|
readonly kind: 'Linked';
|
|
95
102
|
readonly fieldName: string;
|
|
@@ -11,26 +11,29 @@ const queryText = 'query meName {\
|
|
|
11
11
|
},\
|
|
12
12
|
}';
|
|
13
13
|
|
|
14
|
-
const normalizationAst: NormalizationAst =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
]
|
|
14
|
+
const normalizationAst: NormalizationAst = {
|
|
15
|
+
kind: "NormalizationAst",
|
|
16
|
+
selections: [
|
|
17
|
+
{
|
|
18
|
+
kind: "Linked",
|
|
19
|
+
fieldName: "me",
|
|
20
|
+
arguments: null,
|
|
21
|
+
concreteType: "Economist",
|
|
22
|
+
selections: [
|
|
23
|
+
{
|
|
24
|
+
kind: "Scalar",
|
|
25
|
+
fieldName: "id",
|
|
26
|
+
arguments: null,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
kind: "Scalar",
|
|
30
|
+
fieldName: "name",
|
|
31
|
+
arguments: null,
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
};
|
|
34
37
|
const artifact: IsographEntrypoint<
|
|
35
38
|
Query__meName__param,
|
|
36
39
|
Query__meName__output_type
|
|
@@ -18,57 +18,60 @@ const queryText = 'query meNameSuccessor {\
|
|
|
18
18
|
},\
|
|
19
19
|
}';
|
|
20
20
|
|
|
21
|
-
const normalizationAst: NormalizationAst =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
]
|
|
21
|
+
const normalizationAst: NormalizationAst = {
|
|
22
|
+
kind: "NormalizationAst",
|
|
23
|
+
selections: [
|
|
24
|
+
{
|
|
25
|
+
kind: "Linked",
|
|
26
|
+
fieldName: "me",
|
|
27
|
+
arguments: null,
|
|
28
|
+
concreteType: "Economist",
|
|
29
|
+
selections: [
|
|
30
|
+
{
|
|
31
|
+
kind: "Scalar",
|
|
32
|
+
fieldName: "id",
|
|
33
|
+
arguments: null,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
kind: "Scalar",
|
|
37
|
+
fieldName: "name",
|
|
38
|
+
arguments: null,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
kind: "Linked",
|
|
42
|
+
fieldName: "successor",
|
|
43
|
+
arguments: null,
|
|
44
|
+
concreteType: "Economist",
|
|
45
|
+
selections: [
|
|
46
|
+
{
|
|
47
|
+
kind: "Scalar",
|
|
48
|
+
fieldName: "id",
|
|
49
|
+
arguments: null,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
kind: "Linked",
|
|
53
|
+
fieldName: "successor",
|
|
54
|
+
arguments: null,
|
|
55
|
+
concreteType: "Economist",
|
|
56
|
+
selections: [
|
|
57
|
+
{
|
|
58
|
+
kind: "Scalar",
|
|
59
|
+
fieldName: "id",
|
|
60
|
+
arguments: null,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
kind: "Scalar",
|
|
64
|
+
fieldName: "name",
|
|
65
|
+
arguments: null,
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
};
|
|
72
75
|
const artifact: IsographEntrypoint<
|
|
73
76
|
Query__meNameSuccessor__param,
|
|
74
77
|
Query__meNameSuccessor__output_type
|
|
@@ -11,31 +11,34 @@ const queryText = 'query nodeField ($id: ID!) {\
|
|
|
11
11
|
},\
|
|
12
12
|
}';
|
|
13
13
|
|
|
14
|
-
const normalizationAst: NormalizationAst =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
const normalizationAst: NormalizationAst = {
|
|
15
|
+
kind: "NormalizationAst",
|
|
16
|
+
selections: [
|
|
17
|
+
{
|
|
18
|
+
kind: "Linked",
|
|
19
|
+
fieldName: "node",
|
|
20
|
+
arguments: [
|
|
21
|
+
[
|
|
22
|
+
"id",
|
|
23
|
+
{ kind: "Variable", name: "id" },
|
|
24
|
+
],
|
|
22
25
|
],
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
26
|
+
concreteType: null,
|
|
27
|
+
selections: [
|
|
28
|
+
{
|
|
29
|
+
kind: "Scalar",
|
|
30
|
+
fieldName: "__typename",
|
|
31
|
+
arguments: null,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
kind: "Scalar",
|
|
35
|
+
fieldName: "id",
|
|
36
|
+
arguments: null,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
};
|
|
39
42
|
const artifact: IsographEntrypoint<
|
|
40
43
|
Query__nodeField__param,
|
|
41
44
|
Query__nodeField__output_type
|
|
@@ -13,39 +13,42 @@ const queryText = 'query subquery ($id: ID!) {\
|
|
|
13
13
|
},\
|
|
14
14
|
}';
|
|
15
15
|
|
|
16
|
-
const normalizationAst: NormalizationAst =
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
16
|
+
const normalizationAst: NormalizationAst = {
|
|
17
|
+
kind: "NormalizationAst",
|
|
18
|
+
selections: [
|
|
19
|
+
{
|
|
20
|
+
kind: "Linked",
|
|
21
|
+
fieldName: "query",
|
|
22
|
+
arguments: null,
|
|
23
|
+
concreteType: "Query",
|
|
24
|
+
selections: [
|
|
25
|
+
{
|
|
26
|
+
kind: "Linked",
|
|
27
|
+
fieldName: "node",
|
|
28
|
+
arguments: [
|
|
29
|
+
[
|
|
30
|
+
"id",
|
|
31
|
+
{ kind: "Variable", name: "id" },
|
|
32
|
+
],
|
|
30
33
|
],
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
34
|
+
concreteType: null,
|
|
35
|
+
selections: [
|
|
36
|
+
{
|
|
37
|
+
kind: "Scalar",
|
|
38
|
+
fieldName: "__typename",
|
|
39
|
+
arguments: null,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
kind: "Scalar",
|
|
43
|
+
fieldName: "id",
|
|
44
|
+
arguments: null,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
};
|
|
49
52
|
const artifact: IsographEntrypoint<
|
|
50
53
|
Query__subquery__param,
|
|
51
54
|
Query__subquery__output_type
|
|
@@ -55,7 +55,8 @@ export const meNameField = iso(`
|
|
|
55
55
|
import { meNameSuccessorRetainedQuery } from './meNameSuccessor';
|
|
56
56
|
const meNameEntrypoint = iso(`entrypoint Query.meName`);
|
|
57
57
|
const meNameRetainedQuery = {
|
|
58
|
-
normalizationAst:
|
|
58
|
+
normalizationAst:
|
|
59
|
+
meNameEntrypoint.networkRequestInfo.normalizationAst.selections,
|
|
59
60
|
variables: {},
|
|
60
61
|
root: { __link: ROOT_ID, __typename: 'Query' },
|
|
61
62
|
};
|
|
@@ -16,7 +16,7 @@ export const meNameField = iso(`
|
|
|
16
16
|
const meNameSuccessorEntrypoint = iso(`entrypoint Query.meNameSuccessor`);
|
|
17
17
|
export const meNameSuccessorRetainedQuery = {
|
|
18
18
|
normalizationAst:
|
|
19
|
-
meNameSuccessorEntrypoint.networkRequestInfo.normalizationAst,
|
|
19
|
+
meNameSuccessorEntrypoint.networkRequestInfo.normalizationAst.selections,
|
|
20
20
|
variables: {},
|
|
21
21
|
root: {
|
|
22
22
|
__link: ROOT_ID,
|
package/src/tests/nodeQuery.ts
CHANGED
|
@@ -13,7 +13,8 @@ export const nodeField = iso(`
|
|
|
13
13
|
`)(() => {});
|
|
14
14
|
const nodeFieldEntrypoint = iso(`entrypoint Query.nodeField`);
|
|
15
15
|
export const nodeFieldRetainedQuery: RetainedQuery = {
|
|
16
|
-
normalizationAst:
|
|
16
|
+
normalizationAst:
|
|
17
|
+
nodeFieldEntrypoint.networkRequestInfo.normalizationAst.selections,
|
|
17
18
|
variables: { id: 0 },
|
|
18
19
|
root: { __link: ROOT_ID, __typename: 'Query' },
|
|
19
20
|
};
|
|
@@ -35,7 +35,7 @@ describe('normalizeData', () => {
|
|
|
35
35
|
|
|
36
36
|
normalizeData(
|
|
37
37
|
environment,
|
|
38
|
-
entrypoint.networkRequestInfo.normalizationAst,
|
|
38
|
+
entrypoint.networkRequestInfo.normalizationAst.selections,
|
|
39
39
|
{
|
|
40
40
|
query: { node____id___v_id: { __typename: 'Economist', id: '1' } },
|
|
41
41
|
},
|