@graphql-tools/delegate 10.0.27 → 10.0.28

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.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createDefaultExecutor = exports.delegateRequest = exports.delegateToSchema = void 0;
4
+ const merge_1 = require("dset/merge");
4
5
  const graphql_1 = require("graphql");
5
6
  const batch_execute_1 = require("@graphql-tools/batch-execute");
6
7
  const executor_1 = require("@graphql-tools/executor");
@@ -67,6 +68,23 @@ function delegateRequest(options) {
67
68
  if (stopped) {
68
69
  break;
69
70
  }
71
+ if (result.incremental) {
72
+ const data = {};
73
+ for (const incrementalRes of result.incremental) {
74
+ if (incrementalRes.items?.length) {
75
+ for (const item of incrementalRes.items) {
76
+ (0, merge_1.dset)(data, (incrementalRes.path || []).slice(0, -1), item);
77
+ }
78
+ await push(await transformer.transformResult({ data }));
79
+ }
80
+ }
81
+ if (result.hasNext === false) {
82
+ break;
83
+ }
84
+ else {
85
+ continue;
86
+ }
87
+ }
70
88
  const transformedResult = await transformer.transformResult(result);
71
89
  // @stream needs to get the results one by one
72
90
  if (Array.isArray(transformedResult)) {
@@ -1,3 +1,4 @@
1
+ import { dset } from 'dset/merge';
1
2
  import { isListType, validate, } from 'graphql';
2
3
  import { getBatchingExecutor } from '@graphql-tools/batch-execute';
3
4
  import { normalizedExecutor } from '@graphql-tools/executor';
@@ -63,6 +64,23 @@ export function delegateRequest(options) {
63
64
  if (stopped) {
64
65
  break;
65
66
  }
67
+ if (result.incremental) {
68
+ const data = {};
69
+ for (const incrementalRes of result.incremental) {
70
+ if (incrementalRes.items?.length) {
71
+ for (const item of incrementalRes.items) {
72
+ dset(data, (incrementalRes.path || []).slice(0, -1), item);
73
+ }
74
+ await push(await transformer.transformResult({ data }));
75
+ }
76
+ }
77
+ if (result.hasNext === false) {
78
+ break;
79
+ }
80
+ else {
81
+ continue;
82
+ }
83
+ }
66
84
  const transformedResult = await transformer.transformResult(result);
67
85
  // @stream needs to get the results one by one
68
86
  if (Array.isArray(transformedResult)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-tools/delegate",
3
- "version": "10.0.27",
3
+ "version": "10.0.28",
4
4
  "description": "A set of utils for faster development of GraphQL tools",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
@@ -13,6 +13,7 @@
13
13
  "@graphql-tools/utils": "^10.5.5",
14
14
  "@repeaterjs/repeater": "^3.0.6",
15
15
  "dataloader": "^2.2.2",
16
+ "dset": "^3.1.2",
16
17
  "tslib": "^2.5.0"
17
18
  },
18
19
  "repository": {