@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.
- package/.eslintcache +1 -1
- package/CHANGELOG.md +25 -1
- package/README.md +9 -0
- package/lib/executeWithSchema.d.ts +1 -1
- package/lib/executeWithSchema.d.ts.map +1 -1
- package/lib/executeWithSchema.js +2 -6
- package/lib/executeWithSchema.js.map +2 -2
- package/lib/executeWithSchema.mjs +2 -6
- package/lib/executeWithSchema.mjs.map +2 -2
- package/lib/executeWithoutSchema.d.ts +0 -2
- package/lib/executeWithoutSchema.d.ts.map +1 -1
- package/lib/executeWithoutSchema.js +7 -70
- package/lib/executeWithoutSchema.js.map +2 -2
- package/lib/executeWithoutSchema.mjs +7 -70
- package/lib/executeWithoutSchema.mjs.map +2 -2
- package/lib/types.d.ts +0 -2
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -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
|
|
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
|
|
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 =
|
|
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";
|