@apollo/client 3.2.0-beta.9 → 3.2.2

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 (79) hide show
  1. package/LICENSE +1 -1
  2. package/apollo-client.cjs.js +161 -102
  3. package/apollo-client.cjs.js.map +1 -1
  4. package/apollo-client.cjs.min.js +1 -1
  5. package/cache/cache.cjs.js +117 -64
  6. package/cache/cache.cjs.js.map +1 -1
  7. package/cache/core/types/common.d.ts +3 -0
  8. package/cache/core/types/common.d.ts.map +1 -1
  9. package/cache/core/types/common.js.map +1 -1
  10. package/cache/inmemory/entityStore.d.ts +5 -1
  11. package/cache/inmemory/entityStore.d.ts.map +1 -1
  12. package/cache/inmemory/entityStore.js +32 -19
  13. package/cache/inmemory/entityStore.js.map +1 -1
  14. package/cache/inmemory/helpers.d.ts +3 -1
  15. package/cache/inmemory/helpers.d.ts.map +1 -1
  16. package/cache/inmemory/helpers.js +19 -3
  17. package/cache/inmemory/helpers.js.map +1 -1
  18. package/cache/inmemory/inMemoryCache.d.ts.map +1 -1
  19. package/cache/inmemory/inMemoryCache.js +3 -2
  20. package/cache/inmemory/inMemoryCache.js.map +1 -1
  21. package/cache/inmemory/policies.d.ts +6 -5
  22. package/cache/inmemory/policies.d.ts.map +1 -1
  23. package/cache/inmemory/policies.js +57 -26
  24. package/cache/inmemory/policies.js.map +1 -1
  25. package/cache/inmemory/readFromStore.d.ts +1 -2
  26. package/cache/inmemory/readFromStore.d.ts.map +1 -1
  27. package/cache/inmemory/readFromStore.js +5 -14
  28. package/cache/inmemory/readFromStore.js.map +1 -1
  29. package/cache/inmemory/types.d.ts +2 -1
  30. package/cache/inmemory/types.d.ts.map +1 -1
  31. package/cache/inmemory/writeToStore.d.ts.map +1 -1
  32. package/cache/inmemory/writeToStore.js +4 -3
  33. package/cache/inmemory/writeToStore.js.map +1 -1
  34. package/core/ApolloClient.js +2 -2
  35. package/core/LocalState.js +1 -1
  36. package/core/ObservableQuery.d.ts.map +1 -1
  37. package/core/ObservableQuery.js +9 -10
  38. package/core/ObservableQuery.js.map +1 -1
  39. package/core/QueryInfo.d.ts +2 -1
  40. package/core/QueryInfo.d.ts.map +1 -1
  41. package/core/QueryInfo.js +11 -7
  42. package/core/QueryInfo.js.map +1 -1
  43. package/core/QueryManager.d.ts +1 -1
  44. package/core/QueryManager.d.ts.map +1 -1
  45. package/core/QueryManager.js +17 -14
  46. package/core/QueryManager.js.map +1 -1
  47. package/core/Reobserver.js +1 -1
  48. package/core/core.cjs.js +39 -33
  49. package/core/core.cjs.js.map +1 -1
  50. package/core/types.d.ts +1 -1
  51. package/core/types.d.ts.map +1 -1
  52. package/core/watchQueryOptions.d.ts +1 -0
  53. package/core/watchQueryOptions.d.ts.map +1 -1
  54. package/invariantErrorCodes.js +32 -28
  55. package/link/core/ApolloLink.js +1 -1
  56. package/link/core/core.cjs.js +1 -1
  57. package/link/core/core.cjs.js.map +1 -1
  58. package/link/http/checkFetcher.js +1 -1
  59. package/link/http/http.cjs.js +2 -2
  60. package/link/http/http.cjs.js.map +1 -1
  61. package/link/http/serializeFetchParameter.js +1 -1
  62. package/link/persisted-queries/index.d.ts +30 -0
  63. package/link/persisted-queries/index.d.ts.map +1 -0
  64. package/link/persisted-queries/index.js +154 -0
  65. package/link/persisted-queries/index.js.map +1 -0
  66. package/link/persisted-queries/package.json +6 -0
  67. package/link/persisted-queries/persisted-queries.cjs.js +155 -0
  68. package/link/persisted-queries/persisted-queries.cjs.js.map +1 -0
  69. package/package.json +15 -10
  70. package/react/data/QueryData.js +2 -2
  71. package/react/data/QueryData.js.map +1 -1
  72. package/react/data/data.cjs.js +2 -2
  73. package/react/data/data.cjs.js.map +1 -1
  74. package/utilities/policies/pagination.d.ts +21 -12
  75. package/utilities/policies/pagination.d.ts.map +1 -1
  76. package/utilities/policies/pagination.js +49 -37
  77. package/utilities/policies/pagination.js.map +1 -1
  78. package/utilities/utilities.cjs.js +48 -37
  79. package/utilities/utilities.cjs.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/utilities/policies/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,aAAK,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAI3C,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,SAAS,EAC5C,OAAO,GAAE,OAAe,GACvB,WAAW,CAAC,CAAC,EAAE,CAAC,CAUlB;AAMD,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,SAAS,EACjD,OAAO,GAAE,OAAe,GACvB,WAAW,CAAC,CAAC,EAAE,CAAC,CAalB;AAED,aAAK,cAAc,CAAC,KAAK,IAAI,QAAQ,CAAC;IACpC,KAAK,EAAE,KAAK,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,KAAK,CAAC;KACb,CAAC,CAAC;IACH,QAAQ,EAAE,QAAQ,CAAC;QACjB,eAAe,EAAE,OAAO,CAAC;QACzB,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ,CAAC,CAAC;AAKH,wBAAgB,oBAAoB,CAAC,KAAK,GAAG,SAAS,EACpD,OAAO,GAAE,OAAe,GACvB,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAgFpC"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/utilities/policies/pagination.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,aAAK,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAI3C,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,SAAS,EAC5C,OAAO,GAAE,OAAe,GACvB,WAAW,CAAC,CAAC,EAAE,CAAC,CAUlB;AAMD,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,SAAS,EACjD,OAAO,GAAE,OAAe,GACvB,WAAW,CAAC,CAAC,EAAE,CAAC,CAalB;AASD,aAAK,KAAK,CAAC,KAAK,IAAI;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC;CACb,GAAG,CAAC,SAAS,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEtC,aAAK,SAAS,GAAG;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,aAAK,cAAc,CAAC,KAAK,IAAI,QAAQ,CAAC;IACpC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC,CAAC;AAEH,aAAK,cAAc,CAAC,KAAK,IAAI;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,aAAK,gBAAgB,CAAC,KAAK,IAAI,WAAW,CACxC,cAAc,CAAC,KAAK,CAAC,EACrB,cAAc,CAAC,KAAK,CAAC,EACrB,cAAc,CAAC,KAAK,CAAC,CACtB,CAAC;AAKF,wBAAgB,oBAAoB,CAAC,KAAK,GAAG,SAAS,EACpD,OAAO,GAAE,OAAe,GACvB,gBAAgB,CAAC,KAAK,CAAC,CAyHzB"}
@@ -1,4 +1,5 @@
1
1
  import { __assign, __spreadArrays } from "tslib";
2
+ import { __rest } from "tslib";
2
3
  export function concatPagination(keyArgs) {
3
4
  if (keyArgs === void 0) { keyArgs = false; }
4
5
  return {
@@ -29,55 +30,80 @@ export function relayStylePagination(keyArgs) {
29
30
  return {
30
31
  keyArgs: keyArgs,
31
32
  read: function (existing, _a) {
32
- var canRead = _a.canRead;
33
+ var canRead = _a.canRead, readField = _a.readField;
33
34
  if (!existing)
34
35
  return;
35
- var edges = existing.edges.filter(function (edge) { return canRead(edge.node); });
36
- return __assign(__assign({}, existing), { edges: edges, pageInfo: __assign(__assign({}, existing.pageInfo), { startCursor: cursorFromEdge(edges, 0), endCursor: cursorFromEdge(edges, -1) }) });
36
+ var edges = [];
37
+ var startCursor = "";
38
+ var endCursor = "";
39
+ existing.edges.forEach(function (edge) {
40
+ if (canRead(readField("node", edge))) {
41
+ edges.push(edge);
42
+ if (edge.cursor) {
43
+ startCursor = startCursor || edge.cursor;
44
+ endCursor = edge.cursor;
45
+ }
46
+ }
47
+ });
48
+ return __assign(__assign({}, getExtras(existing)), { edges: edges, pageInfo: __assign(__assign({}, existing.pageInfo), { startCursor: startCursor,
49
+ endCursor: endCursor }) });
37
50
  },
38
51
  merge: function (existing, incoming, _a) {
39
52
  if (existing === void 0) { existing = makeEmptyData(); }
40
- var args = _a.args;
41
- if (!args)
42
- return existing;
43
- var incomingEdges = incoming.edges.slice(0);
53
+ var args = _a.args, isReference = _a.isReference, readField = _a.readField;
54
+ var incomingEdges = incoming.edges ? incoming.edges.map(function (edge) {
55
+ if (isReference(edge = __assign({}, edge))) {
56
+ edge.cursor = readField("cursor", edge);
57
+ }
58
+ return edge;
59
+ }) : [];
44
60
  if (incoming.pageInfo) {
45
- updateCursor(incomingEdges, 0, incoming.pageInfo.startCursor);
46
- updateCursor(incomingEdges, -1, incoming.pageInfo.endCursor);
61
+ var _b = incoming.pageInfo, startCursor = _b.startCursor, endCursor = _b.endCursor;
62
+ var firstEdge_1 = incomingEdges[0];
63
+ if (firstEdge_1 && startCursor) {
64
+ firstEdge_1.cursor = startCursor;
65
+ }
66
+ var lastEdge_1 = incomingEdges[incomingEdges.length - 1];
67
+ if (lastEdge_1 && endCursor) {
68
+ lastEdge_1.cursor = endCursor;
69
+ }
47
70
  }
48
71
  var prefix = existing.edges;
49
72
  var suffix = [];
50
- if (args.after) {
73
+ if (args && args.after) {
51
74
  var index = prefix.findIndex(function (edge) { return edge.cursor === args.after; });
52
75
  if (index >= 0) {
53
76
  prefix = prefix.slice(0, index + 1);
54
77
  }
55
78
  }
56
- else if (args.before) {
79
+ else if (args && args.before) {
57
80
  var index = prefix.findIndex(function (edge) { return edge.cursor === args.before; });
58
81
  suffix = index < 0 ? prefix : prefix.slice(index);
59
82
  prefix = [];
60
83
  }
61
- else {
84
+ else if (incoming.edges) {
62
85
  prefix = [];
63
86
  }
64
87
  var edges = __spreadArrays(prefix, incomingEdges, suffix);
65
- var pageInfo = __assign(__assign(__assign({}, incoming.pageInfo), existing.pageInfo), { startCursor: cursorFromEdge(edges, 0), endCursor: cursorFromEdge(edges, -1) });
66
- var updatePageInfo = function (name) {
67
- var value = incoming.pageInfo[name];
68
- if (value !== void 0) {
69
- pageInfo[name] = value;
88
+ var firstEdge = edges[0];
89
+ var lastEdge = edges[edges.length - 1];
90
+ var pageInfo = __assign(__assign(__assign({}, incoming.pageInfo), existing.pageInfo), { startCursor: firstEdge && firstEdge.cursor || "", endCursor: lastEdge && lastEdge.cursor || "" });
91
+ if (incoming.pageInfo) {
92
+ var _c = incoming.pageInfo, hasPreviousPage = _c.hasPreviousPage, hasNextPage = _c.hasNextPage;
93
+ if (!prefix.length && hasPreviousPage !== void 0) {
94
+ pageInfo.hasPreviousPage = hasPreviousPage;
95
+ }
96
+ if (!suffix.length && hasNextPage !== void 0) {
97
+ pageInfo.hasNextPage = hasNextPage;
70
98
  }
71
- };
72
- if (!prefix.length)
73
- updatePageInfo("hasPreviousPage");
74
- if (!suffix.length)
75
- updatePageInfo("hasNextPage");
76
- return __assign(__assign(__assign({}, existing), incoming), { edges: edges,
99
+ }
100
+ return __assign(__assign(__assign({}, getExtras(existing)), getExtras(incoming)), { edges: edges,
77
101
  pageInfo: pageInfo });
78
102
  },
79
103
  };
80
104
  }
105
+ var getExtras = function (obj) { return __rest(obj, notExtras); };
106
+ var notExtras = ["edges", "pageInfo"];
81
107
  function makeEmptyData() {
82
108
  return {
83
109
  edges: [],
@@ -89,18 +115,4 @@ function makeEmptyData() {
89
115
  },
90
116
  };
91
117
  }
92
- function cursorFromEdge(edges, index) {
93
- if (index < 0)
94
- index += edges.length;
95
- var edge = edges[index];
96
- return edge && edge.cursor || "";
97
- }
98
- function updateCursor(edges, index, cursor) {
99
- if (index < 0)
100
- index += edges.length;
101
- var edge = edges[index];
102
- if (cursor && edge && cursor !== edge.cursor) {
103
- edges[index] = __assign(__assign({}, edge), { cursor: cursor });
104
- }
105
- }
106
118
  //# sourceMappingURL=pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/utilities/policies/pagination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/utilities/policies/pagination.ts"],"names":[],"mappings":"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"}
@@ -681,55 +681,80 @@ function relayStylePagination(keyArgs) {
681
681
  return {
682
682
  keyArgs: keyArgs,
683
683
  read: function (existing, _a) {
684
- var canRead = _a.canRead;
684
+ var canRead = _a.canRead, readField = _a.readField;
685
685
  if (!existing)
686
686
  return;
687
- var edges = existing.edges.filter(function (edge) { return canRead(edge.node); });
688
- return tslib.__assign(tslib.__assign({}, existing), { edges: edges, pageInfo: tslib.__assign(tslib.__assign({}, existing.pageInfo), { startCursor: cursorFromEdge(edges, 0), endCursor: cursorFromEdge(edges, -1) }) });
687
+ var edges = [];
688
+ var startCursor = "";
689
+ var endCursor = "";
690
+ existing.edges.forEach(function (edge) {
691
+ if (canRead(readField("node", edge))) {
692
+ edges.push(edge);
693
+ if (edge.cursor) {
694
+ startCursor = startCursor || edge.cursor;
695
+ endCursor = edge.cursor;
696
+ }
697
+ }
698
+ });
699
+ return tslib.__assign(tslib.__assign({}, getExtras(existing)), { edges: edges, pageInfo: tslib.__assign(tslib.__assign({}, existing.pageInfo), { startCursor: startCursor,
700
+ endCursor: endCursor }) });
689
701
  },
690
702
  merge: function (existing, incoming, _a) {
691
703
  if (existing === void 0) { existing = makeEmptyData(); }
692
- var args = _a.args;
693
- if (!args)
694
- return existing;
695
- var incomingEdges = incoming.edges.slice(0);
704
+ var args = _a.args, isReference = _a.isReference, readField = _a.readField;
705
+ var incomingEdges = incoming.edges ? incoming.edges.map(function (edge) {
706
+ if (isReference(edge = tslib.__assign({}, edge))) {
707
+ edge.cursor = readField("cursor", edge);
708
+ }
709
+ return edge;
710
+ }) : [];
696
711
  if (incoming.pageInfo) {
697
- updateCursor(incomingEdges, 0, incoming.pageInfo.startCursor);
698
- updateCursor(incomingEdges, -1, incoming.pageInfo.endCursor);
712
+ var _b = incoming.pageInfo, startCursor = _b.startCursor, endCursor = _b.endCursor;
713
+ var firstEdge_1 = incomingEdges[0];
714
+ if (firstEdge_1 && startCursor) {
715
+ firstEdge_1.cursor = startCursor;
716
+ }
717
+ var lastEdge_1 = incomingEdges[incomingEdges.length - 1];
718
+ if (lastEdge_1 && endCursor) {
719
+ lastEdge_1.cursor = endCursor;
720
+ }
699
721
  }
700
722
  var prefix = existing.edges;
701
723
  var suffix = [];
702
- if (args.after) {
724
+ if (args && args.after) {
703
725
  var index = prefix.findIndex(function (edge) { return edge.cursor === args.after; });
704
726
  if (index >= 0) {
705
727
  prefix = prefix.slice(0, index + 1);
706
728
  }
707
729
  }
708
- else if (args.before) {
730
+ else if (args && args.before) {
709
731
  var index = prefix.findIndex(function (edge) { return edge.cursor === args.before; });
710
732
  suffix = index < 0 ? prefix : prefix.slice(index);
711
733
  prefix = [];
712
734
  }
713
- else {
735
+ else if (incoming.edges) {
714
736
  prefix = [];
715
737
  }
716
738
  var edges = tslib.__spreadArrays(prefix, incomingEdges, suffix);
717
- var pageInfo = tslib.__assign(tslib.__assign(tslib.__assign({}, incoming.pageInfo), existing.pageInfo), { startCursor: cursorFromEdge(edges, 0), endCursor: cursorFromEdge(edges, -1) });
718
- var updatePageInfo = function (name) {
719
- var value = incoming.pageInfo[name];
720
- if (value !== void 0) {
721
- pageInfo[name] = value;
739
+ var firstEdge = edges[0];
740
+ var lastEdge = edges[edges.length - 1];
741
+ var pageInfo = tslib.__assign(tslib.__assign(tslib.__assign({}, incoming.pageInfo), existing.pageInfo), { startCursor: firstEdge && firstEdge.cursor || "", endCursor: lastEdge && lastEdge.cursor || "" });
742
+ if (incoming.pageInfo) {
743
+ var _c = incoming.pageInfo, hasPreviousPage = _c.hasPreviousPage, hasNextPage = _c.hasNextPage;
744
+ if (!prefix.length && hasPreviousPage !== void 0) {
745
+ pageInfo.hasPreviousPage = hasPreviousPage;
746
+ }
747
+ if (!suffix.length && hasNextPage !== void 0) {
748
+ pageInfo.hasNextPage = hasNextPage;
722
749
  }
723
- };
724
- if (!prefix.length)
725
- updatePageInfo("hasPreviousPage");
726
- if (!suffix.length)
727
- updatePageInfo("hasNextPage");
728
- return tslib.__assign(tslib.__assign(tslib.__assign({}, existing), incoming), { edges: edges,
750
+ }
751
+ return tslib.__assign(tslib.__assign(tslib.__assign({}, getExtras(existing)), getExtras(incoming)), { edges: edges,
729
752
  pageInfo: pageInfo });
730
753
  },
731
754
  };
732
755
  }
756
+ var getExtras = function (obj) { return tslib.__rest(obj, notExtras); };
757
+ var notExtras = ["edges", "pageInfo"];
733
758
  function makeEmptyData() {
734
759
  return {
735
760
  edges: [],
@@ -741,20 +766,6 @@ function makeEmptyData() {
741
766
  },
742
767
  };
743
768
  }
744
- function cursorFromEdge(edges, index) {
745
- if (index < 0)
746
- index += edges.length;
747
- var edge = edges[index];
748
- return edge && edge.cursor || "";
749
- }
750
- function updateCursor(edges, index, cursor) {
751
- if (index < 0)
752
- index += edges.length;
753
- var edge = edges[index];
754
- if (cursor && edge && cursor !== edge.cursor) {
755
- edges[index] = tslib.__assign(tslib.__assign({}, edge), { cursor: cursor });
756
- }
757
- }
758
769
 
759
770
  var hasOwnProperty = Object.prototype.hasOwnProperty;
760
771
  function mergeDeep() {