@graphitation/supermassive 3.18.1-canary.2 → 4.0.0

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/CHANGELOG.md CHANGED
@@ -1,9 +1,33 @@
1
1
  # Change Log - @graphitation/supermassive
2
2
 
3
- <!-- This log was last generated on Wed, 15 Apr 2026 15:45:05 GMT and should not be manually modified. -->
3
+ <!-- This log was last generated on Thu, 30 Jul 2026 11:39:04 GMT and should not be manually modified. -->
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 4.0.0
8
+
9
+ Thu, 30 Jul 2026 11:39:04 GMT
10
+
11
+ ### Major changes
12
+
13
+ - Remove enableDeferredMerge execution option (dsamsonov@microsoft.com)
14
+
15
+ ## 3.18.0
16
+
17
+ Thu, 16 Jul 2026 09:12:46 GMT
18
+
19
+ ### Minor changes
20
+
21
+ - early execution and merge (pavelglac@microsoft.com)
22
+
23
+ ## 3.17.1
24
+
25
+ Tue, 14 Jul 2026 09:11:43 GMT
26
+
27
+ ### Patches
28
+
29
+ - yarn upgrade (pavelglac@gmail.com)
30
+
7
31
  ## 3.17.0
8
32
 
9
33
  Wed, 15 Apr 2026 15:45:05 GMT
package/README.md CHANGED
@@ -63,6 +63,15 @@ However, APIs and response format _will_ change, expect breaking changes.
63
63
  > Note: see [this discussion](https://github.com/graphql/defer-stream-wg) of the new response format in the
64
64
  > defer and stream working group
65
65
 
66
+ #### Incremental delivery flags
67
+
68
+ The following optional execution arguments tune how deferred/streamed payloads are executed and delivered.
69
+
70
+ - **`enableEarlyExecution`** (`boolean`, default `false`) — When enabled, deferred fragments (`@defer`
71
+ patches) start executing immediately alongside the main selection set, instead of only after the initial
72
+ result has been resolved. This can reduce the overall latency of incremental payloads at the cost of doing
73
+ more work up front.
74
+
66
75
  ### Possible future - pre-normalized executor
67
76
 
68
77
  In a scenario where executor is running close to the client (sometimes even in same process or at least in same browser), it might be worth exploring removing some of the requirements imposed by the usual GraphQL transport - for example serialization. Not only GraphQL executors do the JSON serialization, but also they return the data that is optimized for transport and that matches the query tree. This means clients need to perform often expensive normazilation. As traffic and message size might be less important in same process / same browser scenarios, it might be worthwhile exploring return pre-normalized data from supermassive. This offers massive speedups for some clients like Apollo ([see benchmarks](https://github.com/vladar/graphql-normalized)).
@@ -1,4 +1,4 @@
1
1
  import { PromiseOrValue } from "./jsutils/PromiseOrValue";
2
2
  import { ExecutionResult, ExecutionWithSchemaArgs } from "./types";
3
- export declare function executeWithSchema({ document, definitions, resolvers, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver, fieldExecutionHooks, enablePerEventContext, enableEarlyExecution, enableDeferredMerge, enableIncrementalPayloadBatching, }: ExecutionWithSchemaArgs): PromiseOrValue<ExecutionResult>;
3
+ export declare function executeWithSchema({ document, definitions, resolvers, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver, fieldExecutionHooks, enablePerEventContext, enableEarlyExecution, }: ExecutionWithSchemaArgs): PromiseOrValue<ExecutionResult>;
4
4
  //# sourceMappingURL=executeWithSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executeWithSchema.d.ts","sourceRoot":"","sources":["../src/executeWithSchema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAGnE,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,gCAAgC,GACjC,EAAE,uBAAuB,GAAG,cAAc,CAAC,eAAe,CAAC,CAwB3D"}
1
+ {"version":3,"file":"executeWithSchema.d.ts","sourceRoot":"","sources":["../src/executeWithSchema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAGnE,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,EAAE,uBAAuB,GAAG,cAAc,CAAC,eAAe,CAAC,CAsB3D"}
@@ -36,9 +36,7 @@ function executeWithSchema({
36
36
  typeResolver,
37
37
  fieldExecutionHooks,
38
38
  enablePerEventContext,
39
- enableEarlyExecution,
40
- enableDeferredMerge,
41
- enableIncrementalPayloadBatching
39
+ enableEarlyExecution
42
40
  }) {
43
41
  const extracted = (0, import_extractMinimalViableSchemaForRequestDocument.extractMinimalViableSchemaForRequestDocument)(
44
42
  (0, import_graphql.buildASTSchema)(definitions),
@@ -59,8 +57,6 @@ function executeWithSchema({
59
57
  typeResolver,
60
58
  fieldExecutionHooks,
61
59
  enablePerEventContext,
62
- enableEarlyExecution,
63
- enableDeferredMerge,
64
- enableIncrementalPayloadBatching
60
+ enableEarlyExecution
65
61
  });
66
62
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/executeWithSchema.ts"],
4
- "sourcesContent": ["import { buildASTSchema } from \"graphql\";\nimport { executeWithoutSchema } from \"./index\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { ExecutionResult, ExecutionWithSchemaArgs } from \"./types\";\nimport { extractMinimalViableSchemaForRequestDocument } from \"./utilities/extractMinimalViableSchemaForRequestDocument\";\n\nexport function executeWithSchema({\n document,\n definitions,\n resolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n enablePerEventContext,\n enableEarlyExecution,\n enableDeferredMerge,\n enableIncrementalPayloadBatching,\n}: ExecutionWithSchemaArgs): PromiseOrValue<ExecutionResult> {\n const extracted = extractMinimalViableSchemaForRequestDocument(\n buildASTSchema(definitions),\n document,\n );\n return executeWithoutSchema({\n document,\n schemaFragment: {\n schemaId: \"executeWithSchema\",\n definitions: extracted.definitions,\n resolvers,\n },\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n enablePerEventContext,\n enableEarlyExecution,\n enableDeferredMerge,\n enableIncrementalPayloadBatching,\n });\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+B;AAC/B,mBAAqC;AAGrC,0DAA6D;AAEtD,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6D;AAC3D,QAAM,gBAAY;AAAA,QAChB,+BAAe,WAAW;AAAA,IAC1B;AAAA,EACF;AACA,aAAO,mCAAqB;AAAA,IAC1B;AAAA,IACA,gBAAgB;AAAA,MACd,UAAU;AAAA,MACV,aAAa,UAAU;AAAA,MACvB;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
4
+ "sourcesContent": ["import { buildASTSchema } from \"graphql\";\nimport { executeWithoutSchema } from \"./index\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { ExecutionResult, ExecutionWithSchemaArgs } from \"./types\";\nimport { extractMinimalViableSchemaForRequestDocument } from \"./utilities/extractMinimalViableSchemaForRequestDocument\";\n\nexport function executeWithSchema({\n document,\n definitions,\n resolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n enablePerEventContext,\n enableEarlyExecution,\n}: ExecutionWithSchemaArgs): PromiseOrValue<ExecutionResult> {\n const extracted = extractMinimalViableSchemaForRequestDocument(\n buildASTSchema(definitions),\n document,\n );\n return executeWithoutSchema({\n document,\n schemaFragment: {\n schemaId: \"executeWithSchema\",\n definitions: extracted.definitions,\n resolvers,\n },\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n enablePerEventContext,\n enableEarlyExecution,\n });\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+B;AAC/B,mBAAqC;AAGrC,0DAA6D;AAEtD,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6D;AAC3D,QAAM,gBAAY;AAAA,QAChB,+BAAe,WAAW;AAAA,IAC1B;AAAA,EACF;AACA,aAAO,mCAAqB;AAAA,IAC1B;AAAA,IACA,gBAAgB;AAAA,MACd,UAAU;AAAA,MACV,aAAa,UAAU;AAAA,MACvB;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -14,9 +14,7 @@ function executeWithSchema({
14
14
  typeResolver,
15
15
  fieldExecutionHooks,
16
16
  enablePerEventContext,
17
- enableEarlyExecution,
18
- enableDeferredMerge,
19
- enableIncrementalPayloadBatching
17
+ enableEarlyExecution
20
18
  }) {
21
19
  const extracted = extractMinimalViableSchemaForRequestDocument(
22
20
  buildASTSchema(definitions),
@@ -37,9 +35,7 @@ function executeWithSchema({
37
35
  typeResolver,
38
36
  fieldExecutionHooks,
39
37
  enablePerEventContext,
40
- enableEarlyExecution,
41
- enableDeferredMerge,
42
- enableIncrementalPayloadBatching
38
+ enableEarlyExecution
43
39
  });
44
40
  }
45
41
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/executeWithSchema.ts"],
4
- "sourcesContent": ["import { buildASTSchema } from \"graphql\";\nimport { executeWithoutSchema } from \"./index\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { ExecutionResult, ExecutionWithSchemaArgs } from \"./types\";\nimport { extractMinimalViableSchemaForRequestDocument } from \"./utilities/extractMinimalViableSchemaForRequestDocument\";\n\nexport function executeWithSchema({\n document,\n definitions,\n resolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n enablePerEventContext,\n enableEarlyExecution,\n enableDeferredMerge,\n enableIncrementalPayloadBatching,\n}: ExecutionWithSchemaArgs): PromiseOrValue<ExecutionResult> {\n const extracted = extractMinimalViableSchemaForRequestDocument(\n buildASTSchema(definitions),\n document,\n );\n return executeWithoutSchema({\n document,\n schemaFragment: {\n schemaId: \"executeWithSchema\",\n definitions: extracted.definitions,\n resolvers,\n },\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n enablePerEventContext,\n enableEarlyExecution,\n enableDeferredMerge,\n enableIncrementalPayloadBatching,\n });\n}\n"],
5
- "mappings": ";AAAA,SAAS,sBAAsB;AAC/B,SAAS,4BAA4B;AAGrC,SAAS,oDAAoD;AAEtD,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6D;AAC3D,QAAM,YAAY;AAAA,IAChB,eAAe,WAAW;AAAA,IAC1B;AAAA,EACF;AACA,SAAO,qBAAqB;AAAA,IAC1B;AAAA,IACA,gBAAgB;AAAA,MACd,UAAU;AAAA,MACV,aAAa,UAAU;AAAA,MACvB;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
4
+ "sourcesContent": ["import { buildASTSchema } from \"graphql\";\nimport { executeWithoutSchema } from \"./index\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { ExecutionResult, ExecutionWithSchemaArgs } from \"./types\";\nimport { extractMinimalViableSchemaForRequestDocument } from \"./utilities/extractMinimalViableSchemaForRequestDocument\";\n\nexport function executeWithSchema({\n document,\n definitions,\n resolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n enablePerEventContext,\n enableEarlyExecution,\n}: ExecutionWithSchemaArgs): PromiseOrValue<ExecutionResult> {\n const extracted = extractMinimalViableSchemaForRequestDocument(\n buildASTSchema(definitions),\n document,\n );\n return executeWithoutSchema({\n document,\n schemaFragment: {\n schemaId: \"executeWithSchema\",\n definitions: extracted.definitions,\n resolvers,\n },\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n fieldExecutionHooks,\n enablePerEventContext,\n enableEarlyExecution,\n });\n}\n"],
5
+ "mappings": ";AAAA,SAAS,sBAAsB;AAC/B,SAAS,4BAA4B;AAGrC,SAAS,oDAAoD;AAEtD,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6D;AAC3D,QAAM,YAAY;AAAA,IAChB,eAAe,WAAW;AAAA,IAC1B;AAAA,EACF;AACA,SAAO,qBAAqB;AAAA,IAC1B;AAAA,IACA,gBAAgB;AAAA,MACd,UAAU;AAAA,MACV,aAAa,UAAU;AAAA,MACvB;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -50,8 +50,6 @@ export interface ExecutionContext {
50
50
  subsequentPayloads: Set<IncrementalDataRecord>;
51
51
  enablePerEventContext: boolean;
52
52
  enableEarlyExecution: boolean;
53
- enableDeferredMerge: boolean;
54
- enableIncrementalPayloadBatching: boolean;
55
53
  }
56
54
  /**
57
55
  * Implements the "Executing requests" section of the GraphQL specification.
@@ -1 +1 @@
1
- {"version":3,"file":"executeWithoutSchema.d.ts","sourceRoot":"","sources":["../src/executeWithoutSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executeWithoutSchema.d.ts","sourceRoot":"","sources":["../src/executeWithoutSchema.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,6 @@ module.exports = __toCommonJS(executeWithoutSchema_exports);
41
41
  var import_graphql = require("graphql");
42
42
  var import_collectFields = require("./collectFields");
43
43
  var import_devAssert = require("./jsutils/devAssert");
44
- var import_getObjectAtPath = require("./jsutils/getObjectAtPath");
45
44
  var import_inspect = require("./jsutils/inspect");
46
45
  var import_invariant = require("./jsutils/invariant");
47
46
  var import_isIterableObject = require("./jsutils/isIterableObject");
@@ -62,7 +61,6 @@ var Resolvers = __toESM(require("./schema/resolvers"));
62
61
  const collectSubfields = (0, import_memoize3.memoize3)(
63
62
  (exeContext, returnTypeName, fieldGroup) => (0, import_collectFields.collectSubfields)(exeContext, returnTypeName.name, fieldGroup)
64
63
  );
65
- const SUBSEQUENT_PAYLOAD_BATCH_INTERVAL_MS = 5;
66
64
  function executeWithoutSchema(args) {
67
65
  const exeContext = buildExecutionContext(args);
68
66
  if (!("schemaFragment" in exeContext)) {
@@ -94,9 +92,7 @@ function buildExecutionContext(args) {
94
92
  subscribeFieldResolver,
95
93
  fieldExecutionHooks,
96
94
  enablePerEventContext,
97
- enableEarlyExecution,
98
- enableDeferredMerge,
99
- enableIncrementalPayloadBatching
95
+ enableEarlyExecution
100
96
  } = args;
101
97
  assertValidExecutionArguments(document, variableValues);
102
98
  let operation;
@@ -155,9 +151,7 @@ function buildExecutionContext(args) {
155
151
  fieldExecutionHooks,
156
152
  subsequentPayloads: /* @__PURE__ */ new Set(),
157
153
  enablePerEventContext: enablePerEventContext != null ? enablePerEventContext : true,
158
- enableEarlyExecution: enableEarlyExecution != null ? enableEarlyExecution : false,
159
- enableDeferredMerge: enableDeferredMerge != null ? enableDeferredMerge : false,
160
- enableIncrementalPayloadBatching: enableIncrementalPayloadBatching != null ? enableIncrementalPayloadBatching : false
154
+ enableEarlyExecution: enableEarlyExecution != null ? enableEarlyExecution : false
161
155
  };
162
156
  }
163
157
  function buildPerEventExecutionContext(exeContext, payload) {
@@ -258,7 +252,7 @@ function executeOperation(exeContext) {
258
252
  return buildResponse(exeContext, null);
259
253
  }
260
254
  }
261
- function buildResponse(exeContext, data, didWaitForDeferredMerge) {
255
+ function buildResponse(exeContext, data) {
262
256
  var _a, _b;
263
257
  if ((0, import_isPromise.isPromise)(data)) {
264
258
  return data.then(
@@ -271,14 +265,6 @@ function buildResponse(exeContext, data, didWaitForDeferredMerge) {
271
265
  }
272
266
  const hooks = exeContext.fieldExecutionHooks;
273
267
  try {
274
- if (exeContext.enableDeferredMerge) {
275
- if (shouldWaitForDeferredMerge(exeContext, data, didWaitForDeferredMerge)) {
276
- return waitForNextTick().then(
277
- () => buildResponse(exeContext, data, true)
278
- );
279
- }
280
- includeCompletedDeferredFragmentsInResult(exeContext, data);
281
- }
282
268
  const initialResult = exeContext.errors.length === 0 ? { data } : { errors: exeContext.errors, data };
283
269
  if (exeContext.subsequentPayloads.size > 0) {
284
270
  return {
@@ -308,25 +294,6 @@ function buildResponse(exeContext, data, didWaitForDeferredMerge) {
308
294
  return buildResponse(exeContext, null);
309
295
  }
310
296
  }
311
- function shouldWaitForDeferredMerge(exeContext, result, didWaitForDeferredMerge) {
312
- if (didWaitForDeferredMerge || result == null) {
313
- return false;
314
- }
315
- let hasDeferredFragment = false;
316
- for (const incrementalDataRecord of exeContext.subsequentPayloads) {
317
- if (!isDeferredFragmentRecord(incrementalDataRecord)) {
318
- continue;
319
- }
320
- if (incrementalDataRecord.isCompleted) {
321
- return false;
322
- }
323
- hasDeferredFragment = true;
324
- }
325
- return hasDeferredFragment;
326
- }
327
- function waitForNextTick() {
328
- return new Promise((resolve) => setTimeout(resolve, 0));
329
- }
330
297
  function executeFieldsSerially(exeContext, parentTypeName, sourceValue, path, groupedFieldSet, patches) {
331
298
  if (exeContext.enableEarlyExecution) {
332
299
  startExecutingPatches(
@@ -428,27 +395,6 @@ function startExecutingPatches(exeContext, parentTypeName, sourceValue, path, pa
428
395
  );
429
396
  }
430
397
  }
431
- function includeCompletedDeferredFragmentsInResult(exeContext, result) {
432
- if (result == null) {
433
- return;
434
- }
435
- for (const incrementalDataRecord of exeContext.subsequentPayloads) {
436
- if (!isDeferredFragmentRecord(incrementalDataRecord) || !incrementalDataRecord.isCompleted) {
437
- continue;
438
- }
439
- const target = (0, import_getObjectAtPath.getObjectAtPath)(result, incrementalDataRecord.path);
440
- if (!target) {
441
- continue;
442
- }
443
- if (incrementalDataRecord.data != null) {
444
- Object.assign(target, incrementalDataRecord.data);
445
- }
446
- if (incrementalDataRecord.errors.length > 0) {
447
- exeContext.errors.push(...incrementalDataRecord.errors);
448
- }
449
- exeContext.subsequentPayloads.delete(incrementalDataRecord);
450
- }
451
- }
452
398
  function executeField(exeContext, parentTypeName, source, fieldGroup, path, incrementalDataRecord) {
453
399
  const schemaFragment = exeContext.schemaFragment;
454
400
  const fieldName = fieldGroup[0].name.value;
@@ -2055,41 +2001,19 @@ function getCompletedIncrementalResults(exeContext) {
2055
2001
  }
2056
2002
  return incrementalResults;
2057
2003
  }
2058
- function waitForCompletedSubsequentPayload(exeContext) {
2059
- return Promise.race(
2060
- Array.from(exeContext.subsequentPayloads).map((p) => p.promise)
2061
- );
2062
- }
2063
- function waitForBatchInterval() {
2064
- return new Promise(
2065
- (resolve) => setTimeout(resolve, SUBSEQUENT_PAYLOAD_BATCH_INTERVAL_MS, "timeout")
2066
- );
2067
- }
2068
- async function getCompletedIncrementalResultsWithBatching(exeContext) {
2069
- const incremental = getCompletedIncrementalResults(exeContext);
2070
- while (incremental.length && exeContext.subsequentPayloads.size > 0) {
2071
- const result = await Promise.race([
2072
- waitForCompletedSubsequentPayload(exeContext).then(() => "payload"),
2073
- waitForBatchInterval()
2074
- ]);
2075
- if (result === "timeout") {
2076
- break;
2077
- }
2078
- incremental.push(...getCompletedIncrementalResults(exeContext));
2079
- }
2080
- return incremental;
2081
- }
2082
2004
  function yieldSubsequentPayloads(exeContext) {
2083
2005
  let isDone = false;
2084
2006
  async function next() {
2085
2007
  if (isDone) {
2086
2008
  return { value: void 0, done: true };
2087
2009
  }
2088
- await waitForCompletedSubsequentPayload(exeContext);
2010
+ await Promise.race(
2011
+ Array.from(exeContext.subsequentPayloads).map((p) => p.promise)
2012
+ );
2089
2013
  if (isDone) {
2090
2014
  return { value: void 0, done: true };
2091
2015
  }
2092
- const incremental = exeContext.enableIncrementalPayloadBatching ? await getCompletedIncrementalResultsWithBatching(exeContext) : getCompletedIncrementalResults(exeContext);
2016
+ const incremental = getCompletedIncrementalResults(exeContext);
2093
2017
  const hasNext = exeContext.subsequentPayloads.size > 0;
2094
2018
  if (!incremental.length && hasNext) {
2095
2019
  return next();
@@ -2132,9 +2056,6 @@ function yieldSubsequentPayloads(exeContext) {
2132
2056
  function isStreamItemsRecord(incrementalDataRecord) {
2133
2057
  return incrementalDataRecord.type === "stream";
2134
2058
  }
2135
- function isDeferredFragmentRecord(incrementalDataRecord) {
2136
- return incrementalDataRecord.type === "defer";
2137
- }
2138
2059
  class DeferredFragmentRecord {
2139
2060
  constructor(opts) {
2140
2061
  this.type = "defer";