@apollo/client 3.7.2 → 3.7.3

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.
@@ -15,10 +15,99 @@ var utils = require('../link/utils');
15
15
  var tsInvariant = require('ts-invariant');
16
16
  var graphqlTag = require('graphql-tag');
17
17
 
18
- var version = '3.7.2';
18
+ var version = '3.7.3';
19
+
20
+ function isNonEmptyArray(value) {
21
+ return Array.isArray(value) && value.length > 0;
22
+ }
23
+
24
+ function isNonNullObject(obj) {
25
+ return obj !== null && typeof obj === 'object';
26
+ }
27
+
28
+ var hasOwnProperty$2 = Object.prototype.hasOwnProperty;
29
+ var defaultReconciler = function (target, source, property) {
30
+ return this.merge(target[property], source[property]);
31
+ };
32
+ var DeepMerger = (function () {
33
+ function DeepMerger(reconciler) {
34
+ if (reconciler === void 0) { reconciler = defaultReconciler; }
35
+ this.reconciler = reconciler;
36
+ this.isObject = isNonNullObject;
37
+ this.pastCopies = new Set();
38
+ }
39
+ DeepMerger.prototype.merge = function (target, source) {
40
+ var _this = this;
41
+ var context = [];
42
+ for (var _i = 2; _i < arguments.length; _i++) {
43
+ context[_i - 2] = arguments[_i];
44
+ }
45
+ if (isNonNullObject(source) && isNonNullObject(target)) {
46
+ Object.keys(source).forEach(function (sourceKey) {
47
+ if (hasOwnProperty$2.call(target, sourceKey)) {
48
+ var targetValue = target[sourceKey];
49
+ if (source[sourceKey] !== targetValue) {
50
+ var result = _this.reconciler.apply(_this, tslib.__spreadArray([target, source, sourceKey], context, false));
51
+ if (result !== targetValue) {
52
+ target = _this.shallowCopyForMerge(target);
53
+ target[sourceKey] = result;
54
+ }
55
+ }
56
+ }
57
+ else {
58
+ target = _this.shallowCopyForMerge(target);
59
+ target[sourceKey] = source[sourceKey];
60
+ }
61
+ });
62
+ return target;
63
+ }
64
+ return source;
65
+ };
66
+ DeepMerger.prototype.shallowCopyForMerge = function (value) {
67
+ if (isNonNullObject(value)) {
68
+ if (!this.pastCopies.has(value)) {
69
+ if (Array.isArray(value)) {
70
+ value = value.slice(0);
71
+ }
72
+ else {
73
+ value = tslib.__assign({ __proto__: Object.getPrototypeOf(value) }, value);
74
+ }
75
+ this.pastCopies.add(value);
76
+ }
77
+ }
78
+ return value;
79
+ };
80
+ return DeepMerger;
81
+ }());
19
82
 
20
83
  function isExecutionPatchIncrementalResult(value) {
21
- return !!value.incremental;
84
+ return "incremental" in value;
85
+ }
86
+ function isExecutionPatchInitialResult(value) {
87
+ return "hasNext" in value && "data" in value;
88
+ }
89
+ function isExecutionPatchResult(value) {
90
+ return (isExecutionPatchIncrementalResult(value) ||
91
+ isExecutionPatchInitialResult(value));
92
+ }
93
+ function mergeIncrementalData(prevResult, result) {
94
+ var mergedData = prevResult;
95
+ var merger = new DeepMerger();
96
+ if (isExecutionPatchIncrementalResult(result) &&
97
+ isNonEmptyArray(result.incremental)) {
98
+ result.incremental.forEach(function (_a) {
99
+ var data = _a.data, path = _a.path;
100
+ for (var i = path.length - 1; i >= 0; --i) {
101
+ var key = path[i];
102
+ var isNumericKey = !isNaN(+key);
103
+ var parent_1 = isNumericKey ? [] : {};
104
+ parent_1[key] = data;
105
+ data = parent_1;
106
+ }
107
+ mergedData = merger.merge(mergedData, data);
108
+ });
109
+ }
110
+ return mergedData;
22
111
  }
23
112
 
24
113
  exports.NetworkStatus = void 0;
@@ -983,28 +1072,18 @@ var QueryInfo = (function () {
983
1072
  };
984
1073
  QueryInfo.prototype.markResult = function (result, document, options, cacheWriteBehavior) {
985
1074
  var _this = this;
1075
+ var merger = new utilities.DeepMerger();
986
1076
  var graphQLErrors = utilities.isNonEmptyArray(result.errors)
987
1077
  ? result.errors.slice(0)
988
1078
  : [];
989
1079
  this.reset();
990
1080
  if ('incremental' in result && utilities.isNonEmptyArray(result.incremental)) {
991
- var mergedData_1 = this.getDiff().result;
992
- var merger_1 = new utilities.DeepMerger();
993
- result.incremental.forEach(function (_a) {
994
- var data = _a.data, path = _a.path, errors = _a.errors;
995
- for (var i = path.length - 1; i >= 0; --i) {
996
- var key = path[i];
997
- var isNumericKey = !isNaN(+key);
998
- var parent_1 = isNumericKey ? [] : {};
999
- parent_1[key] = data;
1000
- data = parent_1;
1001
- }
1002
- if (errors) {
1003
- graphQLErrors.push.apply(graphQLErrors, errors);
1004
- }
1005
- mergedData_1 = merger_1.merge(mergedData_1, data);
1006
- });
1007
- result.data = mergedData_1;
1081
+ var mergedData = mergeIncrementalData(this.getDiff().result, result);
1082
+ result.data = mergedData;
1083
+ }
1084
+ else if ('hasNext' in result && result.hasNext) {
1085
+ var diff = this.getDiff();
1086
+ result.data = merger.merge(diff.result, result.data);
1008
1087
  }
1009
1088
  this.graphQLErrors = graphQLErrors;
1010
1089
  if (options.fetchPolicy === 'no-cache') {
@@ -1161,7 +1240,7 @@ var QueryManager = (function () {
1161
1240
  return utilities.asyncMap(self.getObservableFromLink(mutation, tslib.__assign(tslib.__assign({}, context), { optimisticResponse: optimisticResponse }), variables, false), function (result) {
1162
1241
  if (utilities.graphQLResultHasError(result) && errorPolicy === 'none') {
1163
1242
  throw new errors.ApolloError({
1164
- graphQLErrors: result.errors,
1243
+ graphQLErrors: utilities.getGraphQLErrorsFromResult(result),
1165
1244
  });
1166
1245
  }
1167
1246
  if (mutationStoreValue) {
@@ -1195,7 +1274,9 @@ var QueryManager = (function () {
1195
1274
  }).subscribe({
1196
1275
  next: function (storeResult) {
1197
1276
  self.broadcastQueries();
1198
- resolve(storeResult);
1277
+ if (!('hasNext' in storeResult) || storeResult.hasNext === false) {
1278
+ resolve(storeResult);
1279
+ }
1199
1280
  },
1200
1281
  error: function (err) {
1201
1282
  if (mutationStoreValue) {
@@ -1223,12 +1304,33 @@ var QueryManager = (function () {
1223
1304
  var cacheWrites = [];
1224
1305
  var skipCache = mutation.fetchPolicy === "no-cache";
1225
1306
  if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {
1226
- cacheWrites.push({
1227
- result: result.data,
1228
- dataId: 'ROOT_MUTATION',
1229
- query: mutation.document,
1230
- variables: mutation.variables,
1231
- });
1307
+ if (!isExecutionPatchIncrementalResult(result)) {
1308
+ cacheWrites.push({
1309
+ result: result.data,
1310
+ dataId: 'ROOT_MUTATION',
1311
+ query: mutation.document,
1312
+ variables: mutation.variables,
1313
+ });
1314
+ }
1315
+ if (isExecutionPatchIncrementalResult(result) && utilities.isNonEmptyArray(result.incremental)) {
1316
+ var diff = cache.diff({
1317
+ id: "ROOT_MUTATION",
1318
+ query: this.transform(mutation.document).asQuery,
1319
+ variables: mutation.variables,
1320
+ optimistic: false,
1321
+ returnPartialData: true,
1322
+ });
1323
+ var mergedData = mergeIncrementalData(diff.result, result);
1324
+ if (typeof mergedData !== 'undefined') {
1325
+ result.data = mergedData;
1326
+ cacheWrites.push({
1327
+ result: mergedData,
1328
+ dataId: 'ROOT_MUTATION',
1329
+ query: mutation.document,
1330
+ variables: mutation.variables,
1331
+ });
1332
+ }
1333
+ }
1232
1334
  var updateQueries_1 = mutation.updateQueries;
1233
1335
  if (updateQueries_1) {
1234
1336
  this.queries.forEach(function (_a, queryId) {
@@ -1275,6 +1377,8 @@ var QueryManager = (function () {
1275
1377
  cacheWrites.forEach(function (write) { return cache.write(write); });
1276
1378
  }
1277
1379
  var update = mutation.update;
1380
+ var isFinalResult = !isExecutionPatchResult(result) ||
1381
+ (isExecutionPatchIncrementalResult(result) && !result.hasNext);
1278
1382
  if (update) {
1279
1383
  if (!skipCache) {
1280
1384
  var diff = cache.diff({
@@ -1284,16 +1388,24 @@ var QueryManager = (function () {
1284
1388
  optimistic: false,
1285
1389
  returnPartialData: true,
1286
1390
  });
1287
- if (diff.complete && !(isExecutionPatchIncrementalResult(result))) {
1391
+ if (diff.complete) {
1288
1392
  result = tslib.__assign(tslib.__assign({}, result), { data: diff.result });
1393
+ if ('incremental' in result) {
1394
+ delete result.incremental;
1395
+ }
1396
+ if ('hasNext' in result) {
1397
+ delete result.hasNext;
1398
+ }
1289
1399
  }
1290
1400
  }
1291
- update(cache, result, {
1292
- context: mutation.context,
1293
- variables: mutation.variables,
1294
- });
1401
+ if (isFinalResult) {
1402
+ update(cache, result, {
1403
+ context: mutation.context,
1404
+ variables: mutation.variables,
1405
+ });
1406
+ }
1295
1407
  }
1296
- if (!skipCache && !mutation.keepRootFields) {
1408
+ if (!skipCache && !mutation.keepRootFields && isFinalResult) {
1297
1409
  cache.modify({
1298
1410
  id: 'ROOT_MUTATION',
1299
1411
  fields: function (value, _a) {
@@ -1661,17 +1773,8 @@ var QueryManager = (function () {
1661
1773
  var requestId = queryInfo.lastRequestId = this.generateRequestId();
1662
1774
  var linkDocument = this.cache.transformForLink(this.transform(queryInfo.document).document);
1663
1775
  return utilities.asyncMap(this.getObservableFromLink(linkDocument, options.context, options.variables), function (result) {
1664
- var graphQLErrors = utilities.isNonEmptyArray(result.errors)
1665
- ? result.errors.slice(0)
1666
- : [];
1667
- if ('incremental' in result && utilities.isNonEmptyArray(result.incremental)) {
1668
- result.incremental.forEach(function (incrementalResult) {
1669
- if (incrementalResult.errors) {
1670
- graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors);
1671
- }
1672
- });
1673
- }
1674
- var hasErrors = utilities.isNonEmptyArray(graphQLErrors);
1776
+ var graphQLErrors = utilities.getGraphQLErrorsFromResult(result);
1777
+ var hasErrors = graphQLErrors.length > 0;
1675
1778
  if (requestId >= queryInfo.lastRequestId) {
1676
1779
  if (hasErrors && options.errorPolicy === "none") {
1677
1780
  throw queryInfo.markError(new errors.ApolloError({
@@ -5,7 +5,7 @@
5
5
  // consult the @apollo/client/invariantErrorCodes.js file specific to
6
6
  // your @apollo/client version. This file is not meant to be imported.
7
7
  {
8
- "@apollo/client version": "3.7.2",
8
+ "@apollo/client version": "3.7.3",
9
9
 
10
10
  1: {
11
11
  file: "@apollo/client/cache/inmemory/entityStore.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apollo/client",
3
- "version": "3.7.2",
3
+ "version": "3.7.3",
4
4
  "description": "A fully-featured caching GraphQL client.",
5
5
  "private": false,
6
6
  "keywords": [
@@ -67,7 +67,9 @@
67
67
  },
68
68
  "devDependencies": {
69
69
  "@babel/parser": "7.20.5",
70
- "@graphql-tools/schema": "9.0.10",
70
+ "@changesets/changelog-github": "0.4.7",
71
+ "@changesets/cli": "2.25.2",
72
+ "@graphql-tools/schema": "9.0.12",
71
73
  "@rollup/plugin-node-resolve": "11.2.1",
72
74
  "@testing-library/react": "13.4.0",
73
75
  "@testing-library/react-12": "npm:@testing-library/react@^12",
@@ -78,9 +80,9 @@
78
80
  "@types/fetch-mock": "7.3.5",
79
81
  "@types/glob": "8.0.0",
80
82
  "@types/hoist-non-react-statics": "3.3.1",
81
- "@types/jest": "29.2.3",
83
+ "@types/jest": "29.2.4",
82
84
  "@types/lodash": "4.14.191",
83
- "@types/node": "16.18.4",
85
+ "@types/node": "18.11.13",
84
86
  "@types/node-fetch": "2.6.2",
85
87
  "@types/react": "18.0.26",
86
88
  "@types/react-dom": "18.0.9",
@@ -95,13 +97,13 @@
95
97
  "graphql-ws": "5.11.2",
96
98
  "jest": "29.3.1",
97
99
  "jest-environment-jsdom": "29.3.1",
98
- "jest-junit": "14.0.1",
100
+ "jest-junit": "15.0.0",
99
101
  "lodash": "4.17.21",
100
102
  "react": "18.2.0",
101
103
  "react-17": "npm:react@^17",
102
104
  "react-dom": "18.2.0",
103
105
  "react-dom-17": "npm:react-dom@^17",
104
- "recast": "0.21.5",
106
+ "recast": "0.22.0",
105
107
  "resolve": "1.22.1",
106
108
  "rimraf": "3.0.2",
107
109
  "rollup": "2.79.1",
@@ -1,3 +1,4 @@
1
- import { ExecutionResult } from 'graphql';
2
- export declare function graphQLResultHasError(result: ExecutionResult<unknown>): boolean;
1
+ import { FetchResult } from "../../link/core";
2
+ export declare function graphQLResultHasError(result: FetchResult): boolean;
3
+ export declare function getGraphQLErrorsFromResult(result: FetchResult): import("graphql").GraphQLError[];
3
4
  //# sourceMappingURL=errorHandling.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandling.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/errorHandling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAE/E"}
1
+ {"version":3,"file":"errorHandling.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/errorHandling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAGlE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,oCAgB7D"}
@@ -1,4 +1,21 @@
1
+ import { isNonEmptyArray } from "./arrays.js";
2
+ import { isExecutionPatchIncrementalResult } from "./incrementalResult.js";
1
3
  export function graphQLResultHasError(result) {
2
- return (result.errors && result.errors.length > 0) || false;
4
+ var errors = getGraphQLErrorsFromResult(result);
5
+ return isNonEmptyArray(errors);
6
+ }
7
+ export function getGraphQLErrorsFromResult(result) {
8
+ var graphQLErrors = isNonEmptyArray(result.errors)
9
+ ? result.errors.slice(0)
10
+ : [];
11
+ if (isExecutionPatchIncrementalResult(result) &&
12
+ isNonEmptyArray(result.incremental)) {
13
+ result.incremental.forEach(function (incrementalResult) {
14
+ if (incrementalResult.errors) {
15
+ graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors);
16
+ }
17
+ });
18
+ }
19
+ return graphQLErrors;
3
20
  }
4
21
  //# sourceMappingURL=errorHandling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../../src/utilities/common/errorHandling.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,MAAgC;IACpE,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;AAC9D,CAAC","sourcesContent":["import { ExecutionResult } from 'graphql';\n\nexport function graphQLResultHasError(result: ExecutionResult<unknown>): boolean {\n return (result.errors && result.errors.length > 0) || false;\n}\n"]}
1
+ {"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../../src/utilities/common/errorHandling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAC;AAE7F,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IACvD,IAAM,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAmB;IAC5D,IAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;QAClD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,EAAE,CAAC;IAEP,IACE,iCAAiC,CAAC,MAAM,CAAC;QACzC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,EACnC;QACA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,iBAAiB;YAC3C,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBAC5B,aAAa,CAAC,IAAI,OAAlB,aAAa,EAAS,iBAAiB,CAAC,MAAM,EAAE;aACjD;QACH,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import { FetchResult } from \"../../link/core\";\nimport { isNonEmptyArray } from \"../../utilities/common/arrays\";\nimport { isExecutionPatchIncrementalResult } from \"../../utilities/common/incrementalResult\";\n\nexport function graphQLResultHasError(result: FetchResult): boolean {\n const errors = getGraphQLErrorsFromResult(result);\n return isNonEmptyArray(errors);\n}\n\nexport function getGraphQLErrorsFromResult(result: FetchResult) {\n const graphQLErrors = isNonEmptyArray(result.errors)\n ? result.errors.slice(0)\n : [];\n\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach((incrementalResult) => {\n if (incrementalResult.errors) {\n graphQLErrors.push(...incrementalResult.errors);\n }\n });\n }\n return graphQLErrors;\n}\n"]}
@@ -1,3 +1,6 @@
1
- import { ExecutionPatchIncrementalResult } from '../../link/core';
2
- export declare function isExecutionPatchIncrementalResult(value: any): value is ExecutionPatchIncrementalResult;
1
+ import { ExecutionPatchIncrementalResult, ExecutionPatchInitialResult, ExecutionPatchResult, FetchResult } from "../../link/core";
2
+ export declare function isExecutionPatchIncrementalResult(value: FetchResult): value is ExecutionPatchIncrementalResult;
3
+ export declare function isExecutionPatchInitialResult(value: FetchResult): value is ExecutionPatchInitialResult;
4
+ export declare function isExecutionPatchResult(value: FetchResult): value is ExecutionPatchResult;
5
+ export declare function mergeIncrementalData<TData>(prevResult: TData, result: ExecutionPatchResult<TData>): TData;
3
6
  //# sourceMappingURL=incrementalResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"incrementalResult.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/incrementalResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAElE,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,+BAA+B,CAEtG"}
1
+ {"version":3,"file":"incrementalResult.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/incrementalResult.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAIzB,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,WAAW,GACjB,KAAK,IAAI,+BAA+B,CAE1C;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,WAAW,GACjB,KAAK,IAAI,2BAA2B,CAEtC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,GACjB,KAAK,IAAI,oBAAoB,CAK/B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,UAAU,EAAE,KAAK,EACjB,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,SAoBpC"}
@@ -1,4 +1,32 @@
1
+ import { isNonEmptyArray } from "./arrays.js";
2
+ import { DeepMerger } from "./mergeDeep.js";
1
3
  export function isExecutionPatchIncrementalResult(value) {
2
- return !!value.incremental;
4
+ return "incremental" in value;
5
+ }
6
+ export function isExecutionPatchInitialResult(value) {
7
+ return "hasNext" in value && "data" in value;
8
+ }
9
+ export function isExecutionPatchResult(value) {
10
+ return (isExecutionPatchIncrementalResult(value) ||
11
+ isExecutionPatchInitialResult(value));
12
+ }
13
+ export function mergeIncrementalData(prevResult, result) {
14
+ var mergedData = prevResult;
15
+ var merger = new DeepMerger();
16
+ if (isExecutionPatchIncrementalResult(result) &&
17
+ isNonEmptyArray(result.incremental)) {
18
+ result.incremental.forEach(function (_a) {
19
+ var data = _a.data, path = _a.path;
20
+ for (var i = path.length - 1; i >= 0; --i) {
21
+ var key = path[i];
22
+ var isNumericKey = !isNaN(+key);
23
+ var parent_1 = isNumericKey ? [] : {};
24
+ parent_1[key] = data;
25
+ data = parent_1;
26
+ }
27
+ mergedData = merger.merge(mergedData, data);
28
+ });
29
+ }
30
+ return mergedData;
3
31
  }
4
32
  //# sourceMappingURL=incrementalResult.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"incrementalResult.js","sourceRoot":"","sources":["../../../src/utilities/common/incrementalResult.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iCAAiC,CAAC,KAAU;IAC1D,OAAO,CAAC,CAAE,KAAyC,CAAC,WAAW,CAAC;AAClE,CAAC","sourcesContent":["import { ExecutionPatchIncrementalResult } from '../../link/core';\n\nexport function isExecutionPatchIncrementalResult(value: any): value is ExecutionPatchIncrementalResult {\n return !!(value as ExecutionPatchIncrementalResult).incremental;\n}\n"]}
1
+ {"version":3,"file":"incrementalResult.js","sourceRoot":"","sources":["../../../src/utilities/common/incrementalResult.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,iCAAiC,CAC/C,KAAkB;IAElB,OAAO,aAAa,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAkB;IAElB,OAAO,SAAS,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAkB;IAElB,OAAO,CACL,iCAAiC,CAAC,KAAK,CAAC;QACxC,6BAA6B,CAAC,KAAK,CAAC,CACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAAiB,EACjB,MAAmC;IAEnC,IAAI,UAAU,GAAG,UAAU,CAAC;IAC5B,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,IACE,iCAAiC,CAAC,MAAM,CAAC;QACzC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,EACnC;QACA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,EAAc;gBAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;YACtC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;gBACzC,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAM,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAM,QAAM,GAAiC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,QAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACnB,IAAI,GAAG,QAAqB,CAAC;aAC9B;YACD,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,UAAmB,CAAC;AAC7B,CAAC","sourcesContent":["import {\n ExecutionPatchIncrementalResult,\n ExecutionPatchInitialResult,\n ExecutionPatchResult,\n FetchResult,\n} from \"../../link/core\";\nimport { isNonEmptyArray } from \"./arrays\";\nimport { DeepMerger } from \"./mergeDeep\";\n\nexport function isExecutionPatchIncrementalResult(\n value: FetchResult\n): value is ExecutionPatchIncrementalResult {\n return \"incremental\" in value;\n}\n\nexport function isExecutionPatchInitialResult(\n value: FetchResult\n): value is ExecutionPatchInitialResult {\n return \"hasNext\" in value && \"data\" in value;\n}\n\nexport function isExecutionPatchResult(\n value: FetchResult\n): value is ExecutionPatchResult {\n return (\n isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value)\n );\n}\n\nexport function mergeIncrementalData<TData>(\n prevResult: TData,\n result: ExecutionPatchResult<TData>\n) {\n let mergedData = prevResult;\n const merger = new DeepMerger();\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach(({ data, path }) => {\n for (let i = path.length - 1; i >= 0; --i) {\n const key = path[i];\n const isNumericKey = !isNaN(+key);\n const parent: Record<string | number, any> = isNumericKey ? [] : {};\n parent[key] = data;\n data = parent as typeof data;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData as TData;\n}\n"]}
@@ -1185,8 +1185,27 @@ function isNonEmptyArray(value) {
1185
1185
  return Array.isArray(value) && value.length > 0;
1186
1186
  }
1187
1187
 
1188
+ function isExecutionPatchIncrementalResult(value) {
1189
+ return "incremental" in value;
1190
+ }
1191
+
1188
1192
  function graphQLResultHasError(result) {
1189
- return (result.errors && result.errors.length > 0) || false;
1193
+ var errors = getGraphQLErrorsFromResult(result);
1194
+ return isNonEmptyArray(errors);
1195
+ }
1196
+ function getGraphQLErrorsFromResult(result) {
1197
+ var graphQLErrors = isNonEmptyArray(result.errors)
1198
+ ? result.errors.slice(0)
1199
+ : [];
1200
+ if (isExecutionPatchIncrementalResult(result) &&
1201
+ isNonEmptyArray(result.incremental)) {
1202
+ result.incremental.forEach(function (incrementalResult) {
1203
+ if (incrementalResult.errors) {
1204
+ graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors);
1205
+ }
1206
+ });
1207
+ }
1208
+ return graphQLErrors;
1190
1209
  }
1191
1210
 
1192
1211
  function compact() {
@@ -1255,6 +1274,7 @@ exports.getFragmentDefinition = getFragmentDefinition;
1255
1274
  exports.getFragmentDefinitions = getFragmentDefinitions;
1256
1275
  exports.getFragmentFromSelection = getFragmentFromSelection;
1257
1276
  exports.getFragmentQueryDocument = getFragmentQueryDocument;
1277
+ exports.getGraphQLErrorsFromResult = getGraphQLErrorsFromResult;
1258
1278
  exports.getInclusionDirectives = getInclusionDirectives;
1259
1279
  exports.getMainDefinition = getMainDefinition;
1260
1280
  exports.getOperationDefinition = getOperationDefinition;