@graphitation/supermassive 3.14.2 → 3.15.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 +9 -1
- package/lib/executeWithoutSchema.d.ts.map +1 -1
- package/lib/executeWithoutSchema.js +15 -0
- package/lib/executeWithoutSchema.js.map +2 -2
- package/lib/executeWithoutSchema.mjs +15 -0
- package/lib/executeWithoutSchema.mjs.map +2 -2
- package/package.json +1 -1
|
@@ -284,6 +284,9 @@ function executeFieldsSerially(exeContext, parentTypeName, sourceValue, path, gr
|
|
|
284
284
|
}
|
|
285
285
|
if (isPromise(result)) {
|
|
286
286
|
return result.then((resolvedResult) => {
|
|
287
|
+
if (resolvedResult === void 0) {
|
|
288
|
+
return results;
|
|
289
|
+
}
|
|
287
290
|
results[responseName] = resolvedResult;
|
|
288
291
|
return results;
|
|
289
292
|
});
|
|
@@ -353,6 +356,7 @@ function executeField(exeContext, parentTypeName, source, fieldGroup, path, incr
|
|
|
353
356
|
fieldName
|
|
354
357
|
});
|
|
355
358
|
if (!loading) {
|
|
359
|
+
throwIfRootField(parentTypeName, fieldName, fieldGroup, "typeDefinition");
|
|
356
360
|
return void 0;
|
|
357
361
|
}
|
|
358
362
|
return loading.then(() => {
|
|
@@ -372,9 +376,17 @@ function executeField(exeContext, parentTypeName, source, fieldGroup, path, incr
|
|
|
372
376
|
incrementalDataRecord
|
|
373
377
|
);
|
|
374
378
|
}
|
|
379
|
+
throwIfRootField(parentTypeName, fieldName, fieldGroup, "typeDefinition");
|
|
375
380
|
return void 0;
|
|
376
381
|
});
|
|
377
382
|
}
|
|
383
|
+
function throwIfRootField(parentTypeName, fieldName, fieldGroup, validationTarget) {
|
|
384
|
+
const isRootField = parentTypeName === "Mutation" || parentTypeName === "Query";
|
|
385
|
+
if (isRootField) {
|
|
386
|
+
const message = validationTarget === "typeDefinition" ? `Type definition for ${parentTypeName}.${fieldName} is missing` : validationTarget === "resolver" ? `Resolver for ${parentTypeName}.${fieldName} is missing` : "Unexpected validation target";
|
|
387
|
+
throw locatedError(new Error(message), fieldGroup);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
378
390
|
function requestSchemaFragment(exeContext, request) {
|
|
379
391
|
if (!exeContext.schemaFragmentLoader) {
|
|
380
392
|
return;
|
|
@@ -632,6 +644,9 @@ function resolveAndCompleteField(exeContext, parentTypeName, fieldDefinition, fi
|
|
|
632
644
|
path
|
|
633
645
|
);
|
|
634
646
|
const isDefaultResolverUsed = resolveFn === exeContext.fieldResolver || fieldName === "__typename";
|
|
647
|
+
if (resolveFn === exeContext.fieldResolver && typeof source === "undefined") {
|
|
648
|
+
throwIfRootField(parentTypeName, fieldName, fieldGroup, "resolver");
|
|
649
|
+
}
|
|
635
650
|
const hooks = exeContext.fieldExecutionHooks;
|
|
636
651
|
let hookContext = void 0;
|
|
637
652
|
try {
|