@graphitation/supermassive 3.18.1-canary.3 → 4.0.1
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 +33 -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/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +2 -2
- package/lib/index.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,41 @@
|
|
|
1
1
|
# Change Log - @graphitation/supermassive
|
|
2
2
|
|
|
3
|
-
<!-- This log was last generated on
|
|
3
|
+
<!-- This log was last generated on Mon, 10 Aug 2026 13:59:04 GMT and should not be manually modified. -->
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 4.0.1
|
|
8
|
+
|
|
9
|
+
Mon, 10 Aug 2026 13:59:04 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- chore: export incremental types (dsamsonov@microsoft.com)
|
|
14
|
+
|
|
15
|
+
## 4.0.0
|
|
16
|
+
|
|
17
|
+
Thu, 30 Jul 2026 12:02:56 GMT
|
|
18
|
+
|
|
19
|
+
### Major changes
|
|
20
|
+
|
|
21
|
+
- Remove enableDeferredMerge execution option (dsamsonov@microsoft.com)
|
|
22
|
+
|
|
23
|
+
## 3.18.0
|
|
24
|
+
|
|
25
|
+
Thu, 16 Jul 2026 09:12:46 GMT
|
|
26
|
+
|
|
27
|
+
### Minor changes
|
|
28
|
+
|
|
29
|
+
- early execution and merge (pavelglac@microsoft.com)
|
|
30
|
+
|
|
31
|
+
## 3.17.1
|
|
32
|
+
|
|
33
|
+
Tue, 14 Jul 2026 09:11:43 GMT
|
|
34
|
+
|
|
35
|
+
### Patches
|
|
36
|
+
|
|
37
|
+
- yarn upgrade (pavelglac@gmail.com)
|
|
38
|
+
|
|
7
39
|
## 3.17.0
|
|
8
40
|
|
|
9
41
|
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");
|
|
@@ -93,9 +92,7 @@ function buildExecutionContext(args) {
|
|
|
93
92
|
subscribeFieldResolver,
|
|
94
93
|
fieldExecutionHooks,
|
|
95
94
|
enablePerEventContext,
|
|
96
|
-
enableEarlyExecution
|
|
97
|
-
enableDeferredMerge,
|
|
98
|
-
enableIncrementalPayloadBatching
|
|
95
|
+
enableEarlyExecution
|
|
99
96
|
} = args;
|
|
100
97
|
assertValidExecutionArguments(document, variableValues);
|
|
101
98
|
let operation;
|
|
@@ -154,9 +151,7 @@ function buildExecutionContext(args) {
|
|
|
154
151
|
fieldExecutionHooks,
|
|
155
152
|
subsequentPayloads: /* @__PURE__ */ new Set(),
|
|
156
153
|
enablePerEventContext: enablePerEventContext != null ? enablePerEventContext : true,
|
|
157
|
-
enableEarlyExecution: enableEarlyExecution != null ? enableEarlyExecution : false
|
|
158
|
-
enableDeferredMerge: enableDeferredMerge != null ? enableDeferredMerge : false,
|
|
159
|
-
enableIncrementalPayloadBatching: enableIncrementalPayloadBatching != null ? enableIncrementalPayloadBatching : false
|
|
154
|
+
enableEarlyExecution: enableEarlyExecution != null ? enableEarlyExecution : false
|
|
160
155
|
};
|
|
161
156
|
}
|
|
162
157
|
function buildPerEventExecutionContext(exeContext, payload) {
|
|
@@ -257,7 +252,7 @@ function executeOperation(exeContext) {
|
|
|
257
252
|
return buildResponse(exeContext, null);
|
|
258
253
|
}
|
|
259
254
|
}
|
|
260
|
-
function buildResponse(exeContext, data
|
|
255
|
+
function buildResponse(exeContext, data) {
|
|
261
256
|
var _a, _b;
|
|
262
257
|
if ((0, import_isPromise.isPromise)(data)) {
|
|
263
258
|
return data.then(
|
|
@@ -270,14 +265,6 @@ function buildResponse(exeContext, data, didWaitForDeferredMerge) {
|
|
|
270
265
|
}
|
|
271
266
|
const hooks = exeContext.fieldExecutionHooks;
|
|
272
267
|
try {
|
|
273
|
-
if (exeContext.enableDeferredMerge) {
|
|
274
|
-
if (shouldWaitForDeferredMerge(exeContext, data, didWaitForDeferredMerge)) {
|
|
275
|
-
return waitForNextTick().then(
|
|
276
|
-
() => buildResponse(exeContext, data, true)
|
|
277
|
-
);
|
|
278
|
-
}
|
|
279
|
-
includeCompletedDeferredFragmentsInResult(exeContext, data);
|
|
280
|
-
}
|
|
281
268
|
const initialResult = exeContext.errors.length === 0 ? { data } : { errors: exeContext.errors, data };
|
|
282
269
|
if (exeContext.subsequentPayloads.size > 0) {
|
|
283
270
|
return {
|
|
@@ -307,25 +294,6 @@ function buildResponse(exeContext, data, didWaitForDeferredMerge) {
|
|
|
307
294
|
return buildResponse(exeContext, null);
|
|
308
295
|
}
|
|
309
296
|
}
|
|
310
|
-
function shouldWaitForDeferredMerge(exeContext, result, didWaitForDeferredMerge) {
|
|
311
|
-
if (didWaitForDeferredMerge || result == null) {
|
|
312
|
-
return false;
|
|
313
|
-
}
|
|
314
|
-
let hasDeferredFragment = false;
|
|
315
|
-
for (const incrementalDataRecord of exeContext.subsequentPayloads) {
|
|
316
|
-
if (!isDeferredFragmentRecord(incrementalDataRecord)) {
|
|
317
|
-
continue;
|
|
318
|
-
}
|
|
319
|
-
if (incrementalDataRecord.isCompleted) {
|
|
320
|
-
return false;
|
|
321
|
-
}
|
|
322
|
-
hasDeferredFragment = true;
|
|
323
|
-
}
|
|
324
|
-
return hasDeferredFragment;
|
|
325
|
-
}
|
|
326
|
-
function waitForNextTick() {
|
|
327
|
-
return new Promise((resolve) => setTimeout(resolve, 0));
|
|
328
|
-
}
|
|
329
297
|
function executeFieldsSerially(exeContext, parentTypeName, sourceValue, path, groupedFieldSet, patches) {
|
|
330
298
|
if (exeContext.enableEarlyExecution) {
|
|
331
299
|
startExecutingPatches(
|
|
@@ -427,27 +395,6 @@ function startExecutingPatches(exeContext, parentTypeName, sourceValue, path, pa
|
|
|
427
395
|
);
|
|
428
396
|
}
|
|
429
397
|
}
|
|
430
|
-
function includeCompletedDeferredFragmentsInResult(exeContext, result) {
|
|
431
|
-
if (result == null) {
|
|
432
|
-
return;
|
|
433
|
-
}
|
|
434
|
-
for (const incrementalDataRecord of exeContext.subsequentPayloads) {
|
|
435
|
-
if (!isDeferredFragmentRecord(incrementalDataRecord) || !incrementalDataRecord.isCompleted) {
|
|
436
|
-
continue;
|
|
437
|
-
}
|
|
438
|
-
const target = (0, import_getObjectAtPath.getObjectAtPath)(result, incrementalDataRecord.path);
|
|
439
|
-
if (!target) {
|
|
440
|
-
continue;
|
|
441
|
-
}
|
|
442
|
-
if (incrementalDataRecord.data != null) {
|
|
443
|
-
Object.assign(target, incrementalDataRecord.data);
|
|
444
|
-
}
|
|
445
|
-
if (incrementalDataRecord.errors.length > 0) {
|
|
446
|
-
exeContext.errors.push(...incrementalDataRecord.errors);
|
|
447
|
-
}
|
|
448
|
-
exeContext.subsequentPayloads.delete(incrementalDataRecord);
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
398
|
function executeField(exeContext, parentTypeName, source, fieldGroup, path, incrementalDataRecord) {
|
|
452
399
|
const schemaFragment = exeContext.schemaFragment;
|
|
453
400
|
const fieldName = fieldGroup[0].name.value;
|
|
@@ -2054,26 +2001,19 @@ function getCompletedIncrementalResults(exeContext) {
|
|
|
2054
2001
|
}
|
|
2055
2002
|
return incrementalResults;
|
|
2056
2003
|
}
|
|
2057
|
-
function waitForCompletedSubsequentPayload(exeContext) {
|
|
2058
|
-
return Promise.race(
|
|
2059
|
-
Array.from(exeContext.subsequentPayloads).map((p) => p.promise)
|
|
2060
|
-
);
|
|
2061
|
-
}
|
|
2062
|
-
async function getCompletedIncrementalResultsWithBatching(exeContext) {
|
|
2063
|
-
await Promise.resolve();
|
|
2064
|
-
return getCompletedIncrementalResults(exeContext);
|
|
2065
|
-
}
|
|
2066
2004
|
function yieldSubsequentPayloads(exeContext) {
|
|
2067
2005
|
let isDone = false;
|
|
2068
2006
|
async function next() {
|
|
2069
2007
|
if (isDone) {
|
|
2070
2008
|
return { value: void 0, done: true };
|
|
2071
2009
|
}
|
|
2072
|
-
await
|
|
2010
|
+
await Promise.race(
|
|
2011
|
+
Array.from(exeContext.subsequentPayloads).map((p) => p.promise)
|
|
2012
|
+
);
|
|
2073
2013
|
if (isDone) {
|
|
2074
2014
|
return { value: void 0, done: true };
|
|
2075
2015
|
}
|
|
2076
|
-
const incremental =
|
|
2016
|
+
const incremental = getCompletedIncrementalResults(exeContext);
|
|
2077
2017
|
const hasNext = exeContext.subsequentPayloads.size > 0;
|
|
2078
2018
|
if (!incremental.length && hasNext) {
|
|
2079
2019
|
return next();
|
|
@@ -2116,9 +2056,6 @@ function yieldSubsequentPayloads(exeContext) {
|
|
|
2116
2056
|
function isStreamItemsRecord(incrementalDataRecord) {
|
|
2117
2057
|
return incrementalDataRecord.type === "stream";
|
|
2118
2058
|
}
|
|
2119
|
-
function isDeferredFragmentRecord(incrementalDataRecord) {
|
|
2120
|
-
return incrementalDataRecord.type === "defer";
|
|
2121
|
-
}
|
|
2122
2059
|
class DeferredFragmentRecord {
|
|
2123
2060
|
constructor(opts) {
|
|
2124
2061
|
this.type = "defer";
|