@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.
Files changed (36) hide show
  1. package/dist/core/areEqualWithDeepComparison.d.ts.map +1 -1
  2. package/dist/core/areEqualWithDeepComparison.js +16 -0
  3. package/dist/core/cache.d.ts +2 -2
  4. package/dist/core/cache.d.ts.map +1 -1
  5. package/dist/core/check.d.ts +2 -2
  6. package/dist/core/check.d.ts.map +1 -1
  7. package/dist/core/entrypoint.d.ts +12 -8
  8. package/dist/core/entrypoint.d.ts.map +1 -1
  9. package/dist/core/garbageCollection.d.ts +2 -2
  10. package/dist/core/garbageCollection.d.ts.map +1 -1
  11. package/dist/core/logging.d.ts +2 -2
  12. package/dist/core/logging.d.ts.map +1 -1
  13. package/dist/core/makeNetworkRequest.d.ts.map +1 -1
  14. package/dist/core/makeNetworkRequest.js +3 -3
  15. package/dist/core/read.d.ts.map +1 -1
  16. package/dist/core/read.js +4 -0
  17. package/dist/core/reader.d.ts +5 -1
  18. package/dist/core/reader.d.ts.map +1 -1
  19. package/package.json +4 -4
  20. package/src/core/areEqualWithDeepComparison.ts +19 -0
  21. package/src/core/cache.ts +3 -3
  22. package/src/core/check.ts +3 -3
  23. package/src/core/entrypoint.ts +14 -7
  24. package/src/core/garbageCollection.ts +3 -3
  25. package/src/core/logging.ts +2 -2
  26. package/src/core/makeNetworkRequest.ts +4 -3
  27. package/src/core/read.ts +5 -0
  28. package/src/core/reader.ts +8 -1
  29. package/src/tests/__isograph/Query/meName/entrypoint.ts +23 -20
  30. package/src/tests/__isograph/Query/meNameSuccessor/entrypoint.ts +54 -51
  31. package/src/tests/__isograph/Query/nodeField/entrypoint.ts +27 -24
  32. package/src/tests/__isograph/Query/subquery/entrypoint.ts +35 -32
  33. package/src/tests/garbageCollection.test.ts +2 -1
  34. package/src/tests/meNameSuccessor.ts +1 -1
  35. package/src/tests/nodeQuery.ts +2 -1
  36. 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":"AAAA,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,CA6CR"}
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;
@@ -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, NormalizationAst, NormalizationLinkedField, NormalizationScalarField, RefetchQueryNormalizationArtifactWrapper } from '../core/entrypoint';
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: NormalizationAst, networkResponse: NetworkResponseObject, variables: Variables, nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[], root: Link): EncounteredIds;
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 {
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { NormalizationAst } from './entrypoint';
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: NormalizationAst, variables: Variables, root: Link): CheckResult;
17
+ export declare function check(environment: IsographEnvironment, normalizationAst: NormalizationAstNodes, variables: Variables, root: Link): CheckResult;
18
18
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/core/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,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,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,GACT,WAAW,CAgBb"}
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: 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 NormalizationAst = ReadonlyArray<NormalizationAstNode>;
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: NormalizationAst;
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: NormalizationAst;
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":"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"}
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 { NormalizationAst } from './entrypoint';
2
+ import { NormalizationAstNodes } from './entrypoint';
3
3
  export type RetainedQuery = {
4
- readonly normalizationAst: 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,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,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"}
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"}
@@ -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, NormalizationAst, RefetchQueryNormalizationArtifact } from './entrypoint';
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: 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,gBAAgB,EAChB,iCAAiC,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,0BAA0B,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,qBAAqB,CAAC;IACvC,SAAS,EAAE,SAAS,CAAC;CACtB,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;CAChC,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;CACtB,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,IAAI,CAAC;CAChB,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,IAAI,EAAE,yBAAyB,CAAC;IAEhC,eAAe,EAAE,GAAG,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,GAAG,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;CACtB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,UAAU,EAAE,GAAG,CAAC;CACjB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEN,MAAM,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;AAG3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,wBAAgB,UAAU,CACxB,WAAW,EAAE,mBAAmB,EAChC,OAAO,EAAE,UAAU,QAOpB;AAED,wBAAgB,cAAc,CAC5B,WAAW,EAAE,mBAAmB,EAChC,GAAG,EAAE,WAAW,GACf,SAAS,CAMX"}
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,CA6GjD"}
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
  };
@@ -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;AA2kBN,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"}
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];
@@ -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":"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"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/core/reader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isograph/react",
3
- "version": "0.0.0-main-de7554c5",
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-de7554c5",
23
- "@isograph/react-disposable-state": "0.0.0-main-de7554c5",
24
- "@isograph/reference-counted-pointer": "0.0.0-main-de7554c5"
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
- NormalizationAst,
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: 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: 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 { NormalizationAst } from './entrypoint';
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: 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: NormalizationAst,
56
+ normalizationAst: NormalizationAstNodes,
57
57
  variables: Variables,
58
58
  record: StoreRecord,
59
59
  recordLink: Link,
@@ -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: 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
- export type NormalizationAst = ReadonlyArray<NormalizationAstNode>;
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: NormalizationAst;
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: NormalizationAst;
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 { NormalizationAst } from './entrypoint';
12
+ import { NormalizationAstNodes } from './entrypoint';
13
13
 
14
14
  export type RetainedQuery = {
15
- readonly normalizationAst: 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: NormalizationAst,
111
+ selections: NormalizationAstNodes,
112
112
  variables: Variables | null,
113
113
  ) {
114
114
  for (const selection of selections) {
@@ -7,7 +7,7 @@ import {
7
7
  } from './IsographEnvironment';
8
8
  import {
9
9
  IsographEntrypoint,
10
- NormalizationAst,
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: 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: artifact.networkRequestInfo.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;
@@ -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
- kind: "Linked",
17
- fieldName: "me",
18
- arguments: null,
19
- concreteType: "Economist",
20
- selections: [
21
- {
22
- kind: "Scalar",
23
- fieldName: "id",
24
- arguments: null,
25
- },
26
- {
27
- kind: "Scalar",
28
- fieldName: "name",
29
- arguments: null,
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
- kind: "Linked",
24
- fieldName: "me",
25
- arguments: null,
26
- concreteType: "Economist",
27
- selections: [
28
- {
29
- kind: "Scalar",
30
- fieldName: "id",
31
- arguments: null,
32
- },
33
- {
34
- kind: "Scalar",
35
- fieldName: "name",
36
- arguments: null,
37
- },
38
- {
39
- kind: "Linked",
40
- fieldName: "successor",
41
- arguments: null,
42
- concreteType: "Economist",
43
- selections: [
44
- {
45
- kind: "Scalar",
46
- fieldName: "id",
47
- arguments: null,
48
- },
49
- {
50
- kind: "Linked",
51
- fieldName: "successor",
52
- arguments: null,
53
- concreteType: "Economist",
54
- selections: [
55
- {
56
- kind: "Scalar",
57
- fieldName: "id",
58
- arguments: null,
59
- },
60
- {
61
- kind: "Scalar",
62
- fieldName: "name",
63
- arguments: null,
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
- kind: "Linked",
17
- fieldName: "node",
18
- arguments: [
19
- [
20
- "id",
21
- { kind: "Variable", name: "id" },
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
- concreteType: null,
25
- selections: [
26
- {
27
- kind: "Scalar",
28
- fieldName: "__typename",
29
- arguments: null,
30
- },
31
- {
32
- kind: "Scalar",
33
- fieldName: "id",
34
- arguments: null,
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
- kind: "Linked",
19
- fieldName: "query",
20
- arguments: null,
21
- concreteType: "Query",
22
- selections: [
23
- {
24
- kind: "Linked",
25
- fieldName: "node",
26
- arguments: [
27
- [
28
- "id",
29
- { kind: "Variable", name: "id" },
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
- concreteType: null,
33
- selections: [
34
- {
35
- kind: "Scalar",
36
- fieldName: "__typename",
37
- arguments: null,
38
- },
39
- {
40
- kind: "Scalar",
41
- fieldName: "id",
42
- arguments: null,
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: meNameEntrypoint.networkRequestInfo.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,
@@ -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: nodeFieldEntrypoint.networkRequestInfo.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
  },