@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/.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 -86
- package/lib/executeWithoutSchema.js.map +2 -2
- package/lib/executeWithoutSchema.mjs +7 -86
- 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
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
# Change Log - @graphitation/supermassive
|
|
2
2
|
|
|
3
|
-
<!-- This log was last generated on
|
|
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,
|
|
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,
|
|
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"}
|
package/lib/executeWithSchema.js
CHANGED
|
@@ -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
|
|
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;
|
|
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
|
|
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;
|
|
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":"AAAA,OAAO,EACL,YAAY,EAIZ,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAGL,UAAU,EAGX,MAAM,iBAAiB,CAAC;
|
|
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
|
|
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
|
|
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 =
|
|
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";
|