@isograph/react 0.0.0-main-3a405a0b → 0.0.0-main-72f66445
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.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/package.json +4 -4
- 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/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/__isograph/iso.ts +2 -1
- 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
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/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-72f66445",
|
|
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-72f66445",
|
|
23
|
+
"@isograph/react-disposable-state": "0.0.0-main-72f66445",
|
|
24
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-72f66445"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": "18.3.1"
|
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
|
};
|
|
@@ -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
|
|
@@ -95,5 +95,6 @@ export function iso(_isographLiteralText: string):
|
|
|
95
95
|
{
|
|
96
96
|
throw new Error('iso: Unexpected invocation at runtime. Either the Babel transform ' +
|
|
97
97
|
'was not set up, or it failed to identify this call site. Make sure it ' +
|
|
98
|
-
'is being used verbatim as `iso`.'
|
|
98
|
+
'is being used verbatim as `iso`. If you cannot use the babel transform, ' +
|
|
99
|
+
'set options.no_babel_transform to true in your Isograph config. ');
|
|
99
100
|
}
|
|
@@ -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
|
},
|