@graphitation/supermassive 3.18.1-canary.3 → 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.
@@ -9,7 +9,6 @@ import {
9
9
  collectSubfields as _collectSubfields
10
10
  } from "./collectFields.mjs";
11
11
  import { devAssert } from "./jsutils/devAssert.mjs";
12
- import { getObjectAtPath } from "./jsutils/getObjectAtPath.mjs";
13
12
  import { inspect } from "./jsutils/inspect.mjs";
14
13
  import { invariant } from "./jsutils/invariant.mjs";
15
14
  import { isIterableObject } from "./jsutils/isIterableObject.mjs";
@@ -71,9 +70,7 @@ function buildExecutionContext(args) {
71
70
  subscribeFieldResolver,
72
71
  fieldExecutionHooks,
73
72
  enablePerEventContext,
74
- enableEarlyExecution,
75
- enableDeferredMerge,
76
- enableIncrementalPayloadBatching
73
+ enableEarlyExecution
77
74
  } = args;
78
75
  assertValidExecutionArguments(document, variableValues);
79
76
  let operation;
@@ -132,9 +129,7 @@ function buildExecutionContext(args) {
132
129
  fieldExecutionHooks,
133
130
  subsequentPayloads: /* @__PURE__ */ new Set(),
134
131
  enablePerEventContext: enablePerEventContext != null ? enablePerEventContext : true,
135
- enableEarlyExecution: enableEarlyExecution != null ? enableEarlyExecution : false,
136
- enableDeferredMerge: enableDeferredMerge != null ? enableDeferredMerge : false,
137
- enableIncrementalPayloadBatching: enableIncrementalPayloadBatching != null ? enableIncrementalPayloadBatching : false
132
+ enableEarlyExecution: enableEarlyExecution != null ? enableEarlyExecution : false
138
133
  };
139
134
  }
140
135
  function buildPerEventExecutionContext(exeContext, payload) {
@@ -235,7 +230,7 @@ function executeOperation(exeContext) {
235
230
  return buildResponse(exeContext, null);
236
231
  }
237
232
  }
238
- function buildResponse(exeContext, data, didWaitForDeferredMerge) {
233
+ function buildResponse(exeContext, data) {
239
234
  var _a, _b;
240
235
  if (isPromise(data)) {
241
236
  return data.then(
@@ -248,14 +243,6 @@ function buildResponse(exeContext, data, didWaitForDeferredMerge) {
248
243
  }
249
244
  const hooks = exeContext.fieldExecutionHooks;
250
245
  try {
251
- if (exeContext.enableDeferredMerge) {
252
- if (shouldWaitForDeferredMerge(exeContext, data, didWaitForDeferredMerge)) {
253
- return waitForNextTick().then(
254
- () => buildResponse(exeContext, data, true)
255
- );
256
- }
257
- includeCompletedDeferredFragmentsInResult(exeContext, data);
258
- }
259
246
  const initialResult = exeContext.errors.length === 0 ? { data } : { errors: exeContext.errors, data };
260
247
  if (exeContext.subsequentPayloads.size > 0) {
261
248
  return {
@@ -285,25 +272,6 @@ function buildResponse(exeContext, data, didWaitForDeferredMerge) {
285
272
  return buildResponse(exeContext, null);
286
273
  }
287
274
  }
288
- function shouldWaitForDeferredMerge(exeContext, result, didWaitForDeferredMerge) {
289
- if (didWaitForDeferredMerge || result == null) {
290
- return false;
291
- }
292
- let hasDeferredFragment = false;
293
- for (const incrementalDataRecord of exeContext.subsequentPayloads) {
294
- if (!isDeferredFragmentRecord(incrementalDataRecord)) {
295
- continue;
296
- }
297
- if (incrementalDataRecord.isCompleted) {
298
- return false;
299
- }
300
- hasDeferredFragment = true;
301
- }
302
- return hasDeferredFragment;
303
- }
304
- function waitForNextTick() {
305
- return new Promise((resolve) => setTimeout(resolve, 0));
306
- }
307
275
  function executeFieldsSerially(exeContext, parentTypeName, sourceValue, path, groupedFieldSet, patches) {
308
276
  if (exeContext.enableEarlyExecution) {
309
277
  startExecutingPatches(
@@ -405,27 +373,6 @@ function startExecutingPatches(exeContext, parentTypeName, sourceValue, path, pa
405
373
  );
406
374
  }
407
375
  }
408
- function includeCompletedDeferredFragmentsInResult(exeContext, result) {
409
- if (result == null) {
410
- return;
411
- }
412
- for (const incrementalDataRecord of exeContext.subsequentPayloads) {
413
- if (!isDeferredFragmentRecord(incrementalDataRecord) || !incrementalDataRecord.isCompleted) {
414
- continue;
415
- }
416
- const target = getObjectAtPath(result, incrementalDataRecord.path);
417
- if (!target) {
418
- continue;
419
- }
420
- if (incrementalDataRecord.data != null) {
421
- Object.assign(target, incrementalDataRecord.data);
422
- }
423
- if (incrementalDataRecord.errors.length > 0) {
424
- exeContext.errors.push(...incrementalDataRecord.errors);
425
- }
426
- exeContext.subsequentPayloads.delete(incrementalDataRecord);
427
- }
428
- }
429
376
  function executeField(exeContext, parentTypeName, source, fieldGroup, path, incrementalDataRecord) {
430
377
  const schemaFragment = exeContext.schemaFragment;
431
378
  const fieldName = fieldGroup[0].name.value;
@@ -2032,26 +1979,19 @@ function getCompletedIncrementalResults(exeContext) {
2032
1979
  }
2033
1980
  return incrementalResults;
2034
1981
  }
2035
- function waitForCompletedSubsequentPayload(exeContext) {
2036
- return Promise.race(
2037
- Array.from(exeContext.subsequentPayloads).map((p) => p.promise)
2038
- );
2039
- }
2040
- async function getCompletedIncrementalResultsWithBatching(exeContext) {
2041
- await Promise.resolve();
2042
- return getCompletedIncrementalResults(exeContext);
2043
- }
2044
1982
  function yieldSubsequentPayloads(exeContext) {
2045
1983
  let isDone = false;
2046
1984
  async function next() {
2047
1985
  if (isDone) {
2048
1986
  return { value: void 0, done: true };
2049
1987
  }
2050
- await waitForCompletedSubsequentPayload(exeContext);
1988
+ await Promise.race(
1989
+ Array.from(exeContext.subsequentPayloads).map((p) => p.promise)
1990
+ );
2051
1991
  if (isDone) {
2052
1992
  return { value: void 0, done: true };
2053
1993
  }
2054
- const incremental = exeContext.enableIncrementalPayloadBatching ? await getCompletedIncrementalResultsWithBatching(exeContext) : getCompletedIncrementalResults(exeContext);
1994
+ const incremental = getCompletedIncrementalResults(exeContext);
2055
1995
  const hasNext = exeContext.subsequentPayloads.size > 0;
2056
1996
  if (!incremental.length && hasNext) {
2057
1997
  return next();
@@ -2094,9 +2034,6 @@ function yieldSubsequentPayloads(exeContext) {
2094
2034
  function isStreamItemsRecord(incrementalDataRecord) {
2095
2035
  return incrementalDataRecord.type === "stream";
2096
2036
  }
2097
- function isDeferredFragmentRecord(incrementalDataRecord) {
2098
- return incrementalDataRecord.type === "defer";
2099
- }
2100
2037
  var DeferredFragmentRecord = class {
2101
2038
  constructor(opts) {
2102
2039
  this.type = "defer";