graphql 14.0.0 → 14.1.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/README.md +4 -4
- package/error/GraphQLError.js +1 -1
- package/error/GraphQLError.js.flow +3 -3
- package/error/GraphQLError.mjs +1 -1
- package/error/formatError.js +1 -1
- package/error/formatError.mjs +1 -1
- package/error/index.mjs +1 -1
- package/error/locatedError.js +1 -1
- package/error/locatedError.mjs +1 -1
- package/error/printError.js +1 -1
- package/error/printError.mjs +1 -1
- package/error/syntaxError.js +1 -1
- package/error/syntaxError.mjs +1 -1
- package/execution/execute.js +4 -4
- package/execution/execute.js.flow +4 -6
- package/execution/execute.mjs +5 -5
- package/execution/index.mjs +1 -1
- package/execution/values.js +4 -4
- package/execution/values.js.flow +3 -3
- package/execution/values.mjs +3 -3
- package/graphql.js +1 -1
- package/graphql.mjs +1 -1
- package/index.js +12 -0
- package/index.js.flow +4 -0
- package/index.mjs +4 -4
- package/jsutils/dedent.js +2 -2
- package/jsutils/dedent.js.flow +1 -1
- package/jsutils/dedent.mjs +2 -2
- package/jsutils/defineToJSON.js +17 -6
- package/jsutils/defineToJSON.js.flow +14 -5
- package/jsutils/defineToJSON.mjs +14 -6
- package/jsutils/defineToStringTag.js +5 -5
- package/jsutils/defineToStringTag.js.flow +3 -3
- package/jsutils/defineToStringTag.mjs +4 -4
- package/jsutils/inspect.js +46 -12
- package/jsutils/inspect.js.flow +42 -15
- package/jsutils/inspect.mjs +45 -5
- package/jsutils/instanceOf.js +1 -1
- package/jsutils/instanceOf.mjs +1 -1
- package/jsutils/invariant.js +1 -1
- package/jsutils/invariant.mjs +1 -1
- package/jsutils/isInvalid.js +1 -1
- package/jsutils/isInvalid.mjs +1 -1
- package/jsutils/isNullish.js +1 -1
- package/jsutils/isNullish.mjs +1 -1
- package/jsutils/isPromise.js +1 -1
- package/jsutils/isPromise.mjs +1 -1
- package/jsutils/keyMap.js +1 -1
- package/jsutils/keyMap.mjs +1 -1
- package/jsutils/keyValMap.js +1 -1
- package/jsutils/keyValMap.mjs +1 -1
- package/jsutils/mapValue.js +54 -0
- package/jsutils/mapValue.js.flow +27 -0
- package/jsutils/mapValue.mjs +44 -0
- package/jsutils/memoize3.js +1 -1
- package/jsutils/memoize3.mjs +1 -1
- package/jsutils/nodejsCustomInspectSymbol.js +18 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
- package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
- package/jsutils/orList.js +17 -4
- package/jsutils/orList.js.flow +13 -7
- package/jsutils/orList.mjs +14 -4
- package/jsutils/promiseForObject.js +1 -1
- package/jsutils/promiseForObject.mjs +1 -1
- package/jsutils/promiseReduce.js +1 -1
- package/jsutils/promiseReduce.mjs +1 -1
- package/jsutils/quotedOrList.js +1 -1
- package/jsutils/quotedOrList.mjs +1 -1
- package/jsutils/suggestionList.js +1 -1
- package/jsutils/suggestionList.mjs +1 -1
- package/language/blockStringValue.js +2 -2
- package/language/blockStringValue.js.flow +1 -1
- package/language/blockStringValue.mjs +2 -2
- package/language/directiveLocation.js +1 -1
- package/language/directiveLocation.mjs +1 -1
- package/language/index.mjs +1 -1
- package/language/kinds.js +1 -1
- package/language/kinds.mjs +1 -1
- package/language/lexer.js +29 -13
- package/language/lexer.js.flow +34 -20
- package/language/lexer.mjs +28 -13
- package/language/location.js +1 -1
- package/language/location.mjs +1 -1
- package/language/parser.js +31 -38
- package/language/parser.js.flow +32 -48
- package/language/parser.mjs +30 -38
- package/language/predicates.js +1 -1
- package/language/predicates.mjs +1 -1
- package/language/printer.js +13 -7
- package/language/printer.js.flow +19 -9
- package/language/printer.mjs +13 -7
- package/language/source.js +8 -7
- package/language/source.mjs +1 -9
- package/language/visitor.js +11 -20
- package/language/visitor.js.flow +4 -5
- package/language/visitor.mjs +8 -20
- package/package.json +10 -3
- package/polyfills/find.js +31 -0
- package/polyfills/find.js.flow +29 -0
- package/polyfills/find.mjs +23 -0
- package/{jsutils → polyfills}/isFinite.js +1 -1
- package/{jsutils → polyfills}/isFinite.js.flow +0 -0
- package/{jsutils → polyfills}/isFinite.mjs +1 -1
- package/{jsutils → polyfills}/isInteger.js +1 -1
- package/{jsutils → polyfills}/isInteger.js.flow +0 -0
- package/{jsutils → polyfills}/isInteger.mjs +1 -1
- package/polyfills/objectEntries.js +26 -0
- package/polyfills/objectEntries.js.flow +19 -0
- package/polyfills/objectEntries.mjs +18 -0
- package/{jsutils → polyfills}/objectValues.js +1 -1
- package/{jsutils → polyfills}/objectValues.js.flow +1 -1
- package/{jsutils → polyfills}/objectValues.mjs +1 -1
- package/subscription/asyncIteratorReject.mjs +1 -1
- package/subscription/index.mjs +1 -1
- package/subscription/mapAsyncIterator.mjs +1 -1
- package/subscription/subscribe.js +1 -1
- package/subscription/subscribe.js.flow +1 -1
- package/subscription/subscribe.mjs +2 -2
- package/type/definition.js +31 -130
- package/type/definition.js.flow +35 -47
- package/type/definition.mjs +30 -131
- package/type/directives.js +25 -29
- package/type/directives.js.flow +24 -20
- package/type/directives.mjs +22 -30
- package/type/index.js +12 -0
- package/type/index.js.flow +4 -0
- package/type/index.mjs +5 -3
- package/type/introspection.js +3 -3
- package/type/introspection.js.flow +1 -1
- package/type/introspection.mjs +2 -2
- package/type/scalars.js +45 -34
- package/type/scalars.js.flow +40 -26
- package/type/scalars.mjs +44 -26
- package/type/schema.js +82 -87
- package/type/schema.js.flow +17 -9
- package/type/schema.mjs +79 -86
- package/type/validate.js +168 -175
- package/type/validate.js.flow +8 -49
- package/type/validate.mjs +159 -175
- package/utilities/TypeInfo.js +10 -23
- package/utilities/TypeInfo.js.flow +1 -1
- package/utilities/TypeInfo.mjs +2 -24
- package/utilities/assertValidName.js +1 -1
- package/utilities/assertValidName.mjs +1 -1
- package/utilities/astFromValue.js +2 -2
- package/utilities/astFromValue.js.flow +1 -1
- package/utilities/astFromValue.mjs +2 -2
- package/utilities/buildASTSchema.js +169 -152
- package/utilities/buildASTSchema.js.flow +117 -113
- package/utilities/buildASTSchema.mjs +160 -152
- package/utilities/buildClientSchema.js +24 -14
- package/utilities/buildClientSchema.js.flow +24 -14
- package/utilities/buildClientSchema.mjs +23 -14
- package/utilities/coerceValue.js +38 -19
- package/utilities/coerceValue.js.flow +41 -47
- package/utilities/coerceValue.mjs +38 -20
- package/utilities/concatAST.js +1 -1
- package/utilities/concatAST.mjs +1 -1
- package/utilities/extendSchema.js +228 -312
- package/utilities/extendSchema.js.flow +27 -152
- package/utilities/extendSchema.mjs +229 -312
- package/utilities/findBreakingChanges.js +7 -5
- package/utilities/findBreakingChanges.js.flow +3 -2
- package/utilities/findBreakingChanges.mjs +6 -5
- package/utilities/findDeprecatedUsages.js +1 -1
- package/utilities/findDeprecatedUsages.mjs +1 -1
- package/utilities/getOperationAST.js +1 -1
- package/utilities/getOperationAST.mjs +1 -1
- package/utilities/getOperationRootType.js +1 -1
- package/utilities/getOperationRootType.mjs +1 -1
- package/utilities/index.mjs +1 -1
- package/utilities/introspectionFromSchema.js +1 -1
- package/utilities/introspectionFromSchema.mjs +1 -1
- package/utilities/introspectionQuery.js +1 -1
- package/utilities/introspectionQuery.mjs +1 -1
- package/utilities/isValidJSValue.js +1 -1
- package/utilities/isValidJSValue.mjs +1 -1
- package/utilities/isValidLiteralValue.js +1 -1
- package/utilities/isValidLiteralValue.mjs +1 -1
- package/utilities/lexicographicSortSchema.js +2 -2
- package/utilities/lexicographicSortSchema.js.flow +1 -1
- package/utilities/lexicographicSortSchema.mjs +2 -2
- package/utilities/schemaPrinter.js +3 -3
- package/utilities/schemaPrinter.js.flow +1 -1
- package/utilities/schemaPrinter.mjs +2 -2
- package/utilities/separateOperations.js +1 -1
- package/utilities/separateOperations.mjs +1 -1
- package/utilities/typeComparators.js +1 -1
- package/utilities/typeComparators.mjs +1 -1
- package/utilities/typeFromAST.js +1 -1
- package/utilities/typeFromAST.mjs +1 -1
- package/utilities/valueFromAST.js +3 -3
- package/utilities/valueFromAST.js.flow +1 -1
- package/utilities/valueFromAST.mjs +2 -2
- package/utilities/valueFromASTUntyped.js +1 -1
- package/utilities/valueFromASTUntyped.mjs +1 -1
- package/validation/ValidationContext.js +57 -82
- package/validation/ValidationContext.js.flow +52 -49
- package/validation/ValidationContext.mjs +52 -77
- package/validation/index.js.flow +1 -0
- package/validation/index.mjs +1 -1
- package/validation/rules/ExecutableDefinitions.js +1 -1
- package/validation/rules/ExecutableDefinitions.js.flow +1 -1
- package/validation/rules/ExecutableDefinitions.mjs +1 -1
- package/validation/rules/FieldsOnCorrectType.js +1 -1
- package/validation/rules/FieldsOnCorrectType.mjs +1 -1
- package/validation/rules/FragmentsOnCompositeTypes.js +1 -1
- package/validation/rules/FragmentsOnCompositeTypes.mjs +1 -1
- package/validation/rules/KnownArgumentNames.mjs +1 -1
- package/validation/rules/KnownDirectives.js +1 -1
- package/validation/rules/KnownDirectives.mjs +1 -1
- package/validation/rules/KnownFragmentNames.js +1 -1
- package/validation/rules/KnownFragmentNames.mjs +1 -1
- package/validation/rules/KnownTypeNames.js +59 -21
- package/validation/rules/KnownTypeNames.js.flow +54 -20
- package/validation/rules/KnownTypeNames.mjs +56 -21
- package/validation/rules/LoneAnonymousOperation.js +1 -1
- package/validation/rules/LoneAnonymousOperation.mjs +1 -1
- package/validation/rules/LoneSchemaDefinition.js +1 -1
- package/validation/rules/LoneSchemaDefinition.mjs +1 -1
- package/validation/rules/NoFragmentCycles.js +1 -1
- package/validation/rules/NoFragmentCycles.js.flow +2 -2
- package/validation/rules/NoFragmentCycles.mjs +1 -1
- package/validation/rules/NoUndefinedVariables.js +1 -1
- package/validation/rules/NoUndefinedVariables.mjs +1 -1
- package/validation/rules/NoUnusedFragments.js +1 -1
- package/validation/rules/NoUnusedFragments.js.flow +2 -2
- package/validation/rules/NoUnusedFragments.mjs +1 -1
- package/validation/rules/NoUnusedVariables.js +1 -1
- package/validation/rules/NoUnusedVariables.mjs +1 -1
- package/validation/rules/OverlappingFieldsCanBeMerged.js +57 -33
- package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +5 -6
- package/validation/rules/OverlappingFieldsCanBeMerged.mjs +48 -33
- package/validation/rules/PossibleFragmentSpreads.js +1 -1
- package/validation/rules/PossibleFragmentSpreads.mjs +1 -1
- package/validation/rules/PossibleTypeExtensions.js +158 -0
- package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
- package/validation/rules/PossibleTypeExtensions.mjs +146 -0
- package/validation/rules/ProvidedRequiredArguments.mjs +1 -1
- package/validation/rules/ScalarLeafs.js +1 -1
- package/validation/rules/ScalarLeafs.mjs +1 -1
- package/validation/rules/SingleFieldSubscriptions.js +1 -1
- package/validation/rules/SingleFieldSubscriptions.mjs +1 -1
- package/validation/rules/UniqueArgumentNames.js +1 -1
- package/validation/rules/UniqueArgumentNames.mjs +1 -1
- package/validation/rules/UniqueDirectiveNames.js +55 -0
- package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
- package/validation/rules/UniqueDirectiveNames.mjs +43 -0
- package/validation/rules/UniqueDirectivesPerLocation.js +1 -1
- package/validation/rules/UniqueDirectivesPerLocation.mjs +1 -1
- package/validation/rules/UniqueEnumValueNames.js +94 -0
- package/validation/rules/UniqueEnumValueNames.js.flow +87 -0
- package/validation/rules/UniqueEnumValueNames.mjs +81 -0
- package/validation/rules/UniqueFieldDefinitionNames.js +105 -0
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +101 -0
- package/validation/rules/UniqueFieldDefinitionNames.mjs +92 -0
- package/validation/rules/UniqueFragmentNames.js +1 -1
- package/validation/rules/UniqueFragmentNames.mjs +1 -1
- package/validation/rules/UniqueInputFieldNames.js +1 -1
- package/validation/rules/UniqueInputFieldNames.mjs +1 -1
- package/validation/rules/UniqueOperationNames.js +1 -1
- package/validation/rules/UniqueOperationNames.mjs +1 -1
- package/validation/rules/UniqueOperationTypes.js +85 -0
- package/validation/rules/UniqueOperationTypes.js.flow +76 -0
- package/validation/rules/UniqueOperationTypes.mjs +73 -0
- package/validation/rules/UniqueTypeNames.js +62 -0
- package/validation/rules/UniqueTypeNames.js.flow +67 -0
- package/validation/rules/UniqueTypeNames.mjs +50 -0
- package/validation/rules/UniqueVariableNames.js +1 -1
- package/validation/rules/UniqueVariableNames.mjs +1 -1
- package/validation/rules/ValuesOfCorrectType.js +29 -13
- package/validation/rules/ValuesOfCorrectType.js.flow +4 -5
- package/validation/rules/ValuesOfCorrectType.mjs +28 -13
- package/validation/rules/VariablesAreInputTypes.js +1 -1
- package/validation/rules/VariablesAreInputTypes.mjs +1 -1
- package/validation/rules/VariablesInAllowedPosition.js +4 -4
- package/validation/rules/VariablesInAllowedPosition.mjs +4 -4
- package/validation/specifiedRules.js +14 -2
- package/validation/specifiedRules.js.flow +13 -0
- package/validation/specifiedRules.mjs +8 -2
- package/validation/validate.js +1 -1
- package/validation/validate.mjs +1 -1
- package/jsutils/find.js +0 -22
- package/jsutils/find.js.flow +0 -19
- package/jsutils/find.mjs +0 -15
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
5
3
|
*
|
|
6
4
|
* This source code is licensed under the MIT license found in the
|
|
7
5
|
* LICENSE file in the root directory of this source tree.
|
|
8
6
|
*
|
|
9
|
-
*
|
|
7
|
+
*
|
|
10
8
|
*/
|
|
9
|
+
import find from '../../polyfills/find';
|
|
10
|
+
import objectEntries from '../../polyfills/objectEntries';
|
|
11
11
|
import { GraphQLError } from '../../error/GraphQLError';
|
|
12
12
|
import inspect from '../../jsutils/inspect';
|
|
13
|
-
import find from '../../jsutils/find';
|
|
14
13
|
import { Kind } from '../../language/kinds';
|
|
15
14
|
import { print } from '../../language/printer';
|
|
16
15
|
import { getNamedType, isNonNullType, isLeafType, isObjectType, isListType, isInterfaceType } from '../../type/definition';
|
|
17
16
|
import { typeFromAST } from '../../utilities/typeFromAST';
|
|
18
17
|
export function fieldsConflictMessage(responseName, reason) {
|
|
19
|
-
return "Fields \"".concat(responseName, "\" conflict because ").concat(reasonMessage(reason)) + '
|
|
18
|
+
return "Fields \"".concat(responseName, "\" conflict because ").concat(reasonMessage(reason), ". ") + 'Use different aliases on the fields to fetch both if this was intentional.';
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
function reasonMessage(reason) {
|
|
@@ -285,27 +284,45 @@ function collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames
|
|
|
285
284
|
// A field map is a keyed collection, where each key represents a response
|
|
286
285
|
// name and the value at that key is a list of all fields which provide that
|
|
287
286
|
// response name. For every response name, if there are multiple fields, they
|
|
288
|
-
|
|
289
|
-
var
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
var
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
287
|
+
var _iteratorNormalCompletion = true;
|
|
288
|
+
var _didIteratorError = false;
|
|
289
|
+
var _iteratorError = undefined;
|
|
290
|
+
|
|
291
|
+
try {
|
|
292
|
+
for (var _iterator = objectEntries(fieldMap)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
293
|
+
var _ref5 = _step.value;
|
|
294
|
+
var responseName = _ref5[0];
|
|
295
|
+
var fields = _ref5[1];
|
|
296
|
+
|
|
297
|
+
// This compares every field in the list to every other field in this list
|
|
298
|
+
// (except to itself). If the list only has one item, nothing needs to
|
|
299
|
+
// be compared.
|
|
300
|
+
if (fields.length > 1) {
|
|
301
|
+
for (var i = 0; i < fields.length; i++) {
|
|
302
|
+
for (var j = i + 1; j < fields.length; j++) {
|
|
303
|
+
var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, // within one collection is never mutually exclusive
|
|
304
|
+
responseName, fields[i], fields[j]);
|
|
305
|
+
|
|
306
|
+
if (conflict) {
|
|
307
|
+
conflicts.push(conflict);
|
|
308
|
+
}
|
|
305
309
|
}
|
|
306
310
|
}
|
|
307
311
|
}
|
|
308
312
|
}
|
|
313
|
+
} catch (err) {
|
|
314
|
+
_didIteratorError = true;
|
|
315
|
+
_iteratorError = err;
|
|
316
|
+
} finally {
|
|
317
|
+
try {
|
|
318
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
319
|
+
_iterator.return();
|
|
320
|
+
}
|
|
321
|
+
} finally {
|
|
322
|
+
if (_didIteratorError) {
|
|
323
|
+
throw _iteratorError;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
309
326
|
}
|
|
310
327
|
} // Collect all Conflicts between two collections of fields. This is similar to,
|
|
311
328
|
// but different from the `collectConflictsWithin` function above. This check
|
|
@@ -320,10 +337,10 @@ function collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentName
|
|
|
320
337
|
// response name. For any response name which appears in both provided field
|
|
321
338
|
// maps, each field from the first field map must be compared to every field
|
|
322
339
|
// in the second field map to find potential conflicts.
|
|
323
|
-
var
|
|
340
|
+
var _arr = Object.keys(fieldMap1);
|
|
324
341
|
|
|
325
|
-
for (var
|
|
326
|
-
var responseName =
|
|
342
|
+
for (var _i3 = 0; _i3 < _arr.length; _i3++) {
|
|
343
|
+
var responseName = _arr[_i3];
|
|
327
344
|
var fields2 = fieldMap2[responseName];
|
|
328
345
|
|
|
329
346
|
if (fields2) {
|
|
@@ -518,14 +535,14 @@ function _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeA
|
|
|
518
535
|
|
|
519
536
|
function subfieldConflicts(conflicts, responseName, node1, node2) {
|
|
520
537
|
if (conflicts.length > 0) {
|
|
521
|
-
return [[responseName, conflicts.map(function (
|
|
522
|
-
var reason =
|
|
538
|
+
return [[responseName, conflicts.map(function (_ref6) {
|
|
539
|
+
var reason = _ref6[0];
|
|
523
540
|
return reason;
|
|
524
|
-
})], conflicts.reduce(function (allFields,
|
|
525
|
-
var fields1 =
|
|
541
|
+
})], conflicts.reduce(function (allFields, _ref7) {
|
|
542
|
+
var fields1 = _ref7[1];
|
|
526
543
|
return allFields.concat(fields1);
|
|
527
|
-
}, [node1]), conflicts.reduce(function (allFields,
|
|
528
|
-
var fields2 =
|
|
544
|
+
}, [node1]), conflicts.reduce(function (allFields, _ref8) {
|
|
545
|
+
var fields2 = _ref8[2];
|
|
529
546
|
return allFields.concat(fields2);
|
|
530
547
|
}, [node2])];
|
|
531
548
|
}
|
|
@@ -540,8 +557,6 @@ var PairSet =
|
|
|
540
557
|
/*#__PURE__*/
|
|
541
558
|
function () {
|
|
542
559
|
function PairSet() {
|
|
543
|
-
_defineProperty(this, "_data", void 0);
|
|
544
|
-
|
|
545
560
|
this._data = Object.create(null);
|
|
546
561
|
}
|
|
547
562
|
|
|
@@ -25,7 +25,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
25
25
|
* This source code is licensed under the MIT license found in the
|
|
26
26
|
* LICENSE file in the root directory of this source tree.
|
|
27
27
|
*
|
|
28
|
-
*
|
|
28
|
+
*
|
|
29
29
|
*/
|
|
30
30
|
function typeIncompatibleSpreadMessage(fragName, parentType, fragType) {
|
|
31
31
|
return "Fragment \"".concat(fragName, "\" cannot be spread here as objects of ") + "type \"".concat(parentType, "\" can never be of type \"").concat(fragType, "\".");
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.extendingUnknownTypeMessage = extendingUnknownTypeMessage;
|
|
7
|
+
exports.extendingDifferentTypeKindMessage = extendingDifferentTypeKindMessage;
|
|
8
|
+
exports.PossibleTypeExtensions = PossibleTypeExtensions;
|
|
9
|
+
|
|
10
|
+
var _quotedOrList = _interopRequireDefault(require("../../jsutils/quotedOrList"));
|
|
11
|
+
|
|
12
|
+
var _suggestionList = _interopRequireDefault(require("../../jsutils/suggestionList"));
|
|
13
|
+
|
|
14
|
+
var _GraphQLError = require("../../error/GraphQLError");
|
|
15
|
+
|
|
16
|
+
var _kinds = require("../../language/kinds");
|
|
17
|
+
|
|
18
|
+
var _predicates = require("../../language/predicates");
|
|
19
|
+
|
|
20
|
+
var _definition = require("../../type/definition");
|
|
21
|
+
|
|
22
|
+
var _defKindToExtKind;
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
26
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
27
|
+
|
|
28
|
+
function extendingUnknownTypeMessage(typeName, suggestedTypes) {
|
|
29
|
+
var message = "Cannot extend type \"".concat(typeName, "\" because it does not defined.");
|
|
30
|
+
|
|
31
|
+
if (suggestedTypes.length) {
|
|
32
|
+
message += " Did you mean ".concat((0, _quotedOrList.default)(suggestedTypes), "?");
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return message;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function extendingDifferentTypeKindMessage(typeName, kind) {
|
|
39
|
+
return "Cannot extend non-".concat(kind, " type \"").concat(typeName, "\".");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Possible type extension
|
|
43
|
+
*
|
|
44
|
+
* A type extension is only valid if the type defined and have the same kind.
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
function PossibleTypeExtensions(context) {
|
|
49
|
+
var schema = context.getSchema();
|
|
50
|
+
var definedTypes = Object.create(null);
|
|
51
|
+
var _iteratorNormalCompletion = true;
|
|
52
|
+
var _didIteratorError = false;
|
|
53
|
+
var _iteratorError = undefined;
|
|
54
|
+
|
|
55
|
+
try {
|
|
56
|
+
for (var _iterator = context.getDocument().definitions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
57
|
+
var def = _step.value;
|
|
58
|
+
|
|
59
|
+
if ((0, _predicates.isTypeDefinitionNode)(def)) {
|
|
60
|
+
definedTypes[def.name.value] = def;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
} catch (err) {
|
|
64
|
+
_didIteratorError = true;
|
|
65
|
+
_iteratorError = err;
|
|
66
|
+
} finally {
|
|
67
|
+
try {
|
|
68
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
69
|
+
_iterator.return();
|
|
70
|
+
}
|
|
71
|
+
} finally {
|
|
72
|
+
if (_didIteratorError) {
|
|
73
|
+
throw _iteratorError;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
ScalarTypeExtension: checkExtension,
|
|
80
|
+
ObjectTypeExtension: checkExtension,
|
|
81
|
+
InterfaceTypeExtension: checkExtension,
|
|
82
|
+
UnionTypeExtension: checkExtension,
|
|
83
|
+
EnumTypeExtension: checkExtension,
|
|
84
|
+
InputObjectTypeExtension: checkExtension
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
function checkExtension(node) {
|
|
88
|
+
var typeName = node.name.value;
|
|
89
|
+
var defNode = definedTypes[typeName];
|
|
90
|
+
var existingType = schema && schema.getType(typeName);
|
|
91
|
+
|
|
92
|
+
if (defNode) {
|
|
93
|
+
var expectedKind = defKindToExtKind[defNode.kind];
|
|
94
|
+
|
|
95
|
+
if (expectedKind !== node.kind) {
|
|
96
|
+
context.reportError(new _GraphQLError.GraphQLError(extendingDifferentTypeKindMessage(typeName, extensionKindToTypeName(expectedKind)), [defNode, node]));
|
|
97
|
+
}
|
|
98
|
+
} else if (existingType) {
|
|
99
|
+
var _expectedKind = typeToExtKind(existingType);
|
|
100
|
+
|
|
101
|
+
if (_expectedKind !== node.kind) {
|
|
102
|
+
context.reportError(new _GraphQLError.GraphQLError(extendingDifferentTypeKindMessage(typeName, extensionKindToTypeName(_expectedKind)), node));
|
|
103
|
+
}
|
|
104
|
+
} else {
|
|
105
|
+
var allTypeNames = Object.keys(definedTypes);
|
|
106
|
+
|
|
107
|
+
if (schema) {
|
|
108
|
+
allTypeNames = allTypeNames.concat(Object.keys(schema.getTypeMap()));
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
var suggestedTypes = (0, _suggestionList.default)(typeName, allTypeNames);
|
|
112
|
+
context.reportError(new _GraphQLError.GraphQLError(extendingUnknownTypeMessage(typeName, suggestedTypes), node.name));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
var defKindToExtKind = (_defKindToExtKind = {}, _defineProperty(_defKindToExtKind, _kinds.Kind.SCALAR_TYPE_DEFINITION, _kinds.Kind.SCALAR_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.OBJECT_TYPE_DEFINITION, _kinds.Kind.OBJECT_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.INTERFACE_TYPE_DEFINITION, _kinds.Kind.INTERFACE_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.UNION_TYPE_DEFINITION, _kinds.Kind.UNION_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.ENUM_TYPE_DEFINITION, _kinds.Kind.ENUM_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION, _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION), _defKindToExtKind);
|
|
118
|
+
|
|
119
|
+
function typeToExtKind(type) {
|
|
120
|
+
if ((0, _definition.isScalarType)(type)) {
|
|
121
|
+
return _kinds.Kind.SCALAR_TYPE_EXTENSION;
|
|
122
|
+
} else if ((0, _definition.isObjectType)(type)) {
|
|
123
|
+
return _kinds.Kind.OBJECT_TYPE_EXTENSION;
|
|
124
|
+
} else if ((0, _definition.isInterfaceType)(type)) {
|
|
125
|
+
return _kinds.Kind.INTERFACE_TYPE_EXTENSION;
|
|
126
|
+
} else if ((0, _definition.isUnionType)(type)) {
|
|
127
|
+
return _kinds.Kind.UNION_TYPE_EXTENSION;
|
|
128
|
+
} else if ((0, _definition.isEnumType)(type)) {
|
|
129
|
+
return _kinds.Kind.ENUM_TYPE_EXTENSION;
|
|
130
|
+
} else if ((0, _definition.isInputObjectType)(type)) {
|
|
131
|
+
return _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function extensionKindToTypeName(kind) {
|
|
136
|
+
switch (kind) {
|
|
137
|
+
case _kinds.Kind.SCALAR_TYPE_EXTENSION:
|
|
138
|
+
return 'scalar';
|
|
139
|
+
|
|
140
|
+
case _kinds.Kind.OBJECT_TYPE_EXTENSION:
|
|
141
|
+
return 'object';
|
|
142
|
+
|
|
143
|
+
case _kinds.Kind.INTERFACE_TYPE_EXTENSION:
|
|
144
|
+
return 'interface';
|
|
145
|
+
|
|
146
|
+
case _kinds.Kind.UNION_TYPE_EXTENSION:
|
|
147
|
+
return 'union';
|
|
148
|
+
|
|
149
|
+
case _kinds.Kind.ENUM_TYPE_EXTENSION:
|
|
150
|
+
return 'enum';
|
|
151
|
+
|
|
152
|
+
case _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION:
|
|
153
|
+
return 'input object';
|
|
154
|
+
|
|
155
|
+
default:
|
|
156
|
+
return 'unknown type';
|
|
157
|
+
}
|
|
158
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2018-present, Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import quotedOrList from '../../jsutils/quotedOrList';
|
|
11
|
+
import suggestionList from '../../jsutils/suggestionList';
|
|
12
|
+
import type { SDLValidationContext } from '../ValidationContext';
|
|
13
|
+
import { GraphQLError } from '../../error/GraphQLError';
|
|
14
|
+
import { Kind } from '../../language/kinds';
|
|
15
|
+
import { isTypeDefinitionNode } from '../../language/predicates';
|
|
16
|
+
import type { ASTVisitor } from '../../language/visitor';
|
|
17
|
+
import {
|
|
18
|
+
isScalarType,
|
|
19
|
+
isObjectType,
|
|
20
|
+
isInterfaceType,
|
|
21
|
+
isUnionType,
|
|
22
|
+
isEnumType,
|
|
23
|
+
isInputObjectType,
|
|
24
|
+
} from '../../type/definition';
|
|
25
|
+
|
|
26
|
+
export function extendingUnknownTypeMessage(
|
|
27
|
+
typeName: string,
|
|
28
|
+
suggestedTypes: Array<string>,
|
|
29
|
+
): string {
|
|
30
|
+
let message = `Cannot extend type "${typeName}" because it does not defined.`;
|
|
31
|
+
if (suggestedTypes.length) {
|
|
32
|
+
message += ` Did you mean ${quotedOrList(suggestedTypes)}?`;
|
|
33
|
+
}
|
|
34
|
+
return message;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function extendingDifferentTypeKindMessage(
|
|
38
|
+
typeName: string,
|
|
39
|
+
kind: string,
|
|
40
|
+
): string {
|
|
41
|
+
return `Cannot extend non-${kind} type "${typeName}".`;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Possible type extension
|
|
46
|
+
*
|
|
47
|
+
* A type extension is only valid if the type defined and have the same kind.
|
|
48
|
+
*/
|
|
49
|
+
export function PossibleTypeExtensions(
|
|
50
|
+
context: SDLValidationContext,
|
|
51
|
+
): ASTVisitor {
|
|
52
|
+
const schema = context.getSchema();
|
|
53
|
+
const definedTypes = Object.create(null);
|
|
54
|
+
|
|
55
|
+
for (const def of context.getDocument().definitions) {
|
|
56
|
+
if (isTypeDefinitionNode(def)) {
|
|
57
|
+
definedTypes[def.name.value] = def;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
ScalarTypeExtension: checkExtension,
|
|
63
|
+
ObjectTypeExtension: checkExtension,
|
|
64
|
+
InterfaceTypeExtension: checkExtension,
|
|
65
|
+
UnionTypeExtension: checkExtension,
|
|
66
|
+
EnumTypeExtension: checkExtension,
|
|
67
|
+
InputObjectTypeExtension: checkExtension,
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
function checkExtension(node) {
|
|
71
|
+
const typeName = node.name.value;
|
|
72
|
+
const defNode = definedTypes[typeName];
|
|
73
|
+
const existingType = schema && schema.getType(typeName);
|
|
74
|
+
|
|
75
|
+
if (defNode) {
|
|
76
|
+
const expectedKind = defKindToExtKind[defNode.kind];
|
|
77
|
+
if (expectedKind !== node.kind) {
|
|
78
|
+
context.reportError(
|
|
79
|
+
new GraphQLError(
|
|
80
|
+
extendingDifferentTypeKindMessage(
|
|
81
|
+
typeName,
|
|
82
|
+
extensionKindToTypeName(expectedKind),
|
|
83
|
+
),
|
|
84
|
+
[defNode, node],
|
|
85
|
+
),
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
} else if (existingType) {
|
|
89
|
+
const expectedKind = typeToExtKind(existingType);
|
|
90
|
+
if (expectedKind !== node.kind) {
|
|
91
|
+
context.reportError(
|
|
92
|
+
new GraphQLError(
|
|
93
|
+
extendingDifferentTypeKindMessage(
|
|
94
|
+
typeName,
|
|
95
|
+
extensionKindToTypeName(expectedKind),
|
|
96
|
+
),
|
|
97
|
+
node,
|
|
98
|
+
),
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
} else {
|
|
102
|
+
let allTypeNames = Object.keys(definedTypes);
|
|
103
|
+
if (schema) {
|
|
104
|
+
allTypeNames = allTypeNames.concat(Object.keys(schema.getTypeMap()));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const suggestedTypes = suggestionList(typeName, allTypeNames);
|
|
108
|
+
context.reportError(
|
|
109
|
+
new GraphQLError(
|
|
110
|
+
extendingUnknownTypeMessage(typeName, suggestedTypes),
|
|
111
|
+
node.name,
|
|
112
|
+
),
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const defKindToExtKind = {
|
|
119
|
+
[Kind.SCALAR_TYPE_DEFINITION]: Kind.SCALAR_TYPE_EXTENSION,
|
|
120
|
+
[Kind.OBJECT_TYPE_DEFINITION]: Kind.OBJECT_TYPE_EXTENSION,
|
|
121
|
+
[Kind.INTERFACE_TYPE_DEFINITION]: Kind.INTERFACE_TYPE_EXTENSION,
|
|
122
|
+
[Kind.UNION_TYPE_DEFINITION]: Kind.UNION_TYPE_EXTENSION,
|
|
123
|
+
[Kind.ENUM_TYPE_DEFINITION]: Kind.ENUM_TYPE_EXTENSION,
|
|
124
|
+
[Kind.INPUT_OBJECT_TYPE_DEFINITION]: Kind.INPUT_OBJECT_TYPE_EXTENSION,
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
function typeToExtKind(type) {
|
|
128
|
+
if (isScalarType(type)) {
|
|
129
|
+
return Kind.SCALAR_TYPE_EXTENSION;
|
|
130
|
+
} else if (isObjectType(type)) {
|
|
131
|
+
return Kind.OBJECT_TYPE_EXTENSION;
|
|
132
|
+
} else if (isInterfaceType(type)) {
|
|
133
|
+
return Kind.INTERFACE_TYPE_EXTENSION;
|
|
134
|
+
} else if (isUnionType(type)) {
|
|
135
|
+
return Kind.UNION_TYPE_EXTENSION;
|
|
136
|
+
} else if (isEnumType(type)) {
|
|
137
|
+
return Kind.ENUM_TYPE_EXTENSION;
|
|
138
|
+
} else if (isInputObjectType(type)) {
|
|
139
|
+
return Kind.INPUT_OBJECT_TYPE_EXTENSION;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
function extensionKindToTypeName(kind) {
|
|
144
|
+
switch (kind) {
|
|
145
|
+
case Kind.SCALAR_TYPE_EXTENSION:
|
|
146
|
+
return 'scalar';
|
|
147
|
+
case Kind.OBJECT_TYPE_EXTENSION:
|
|
148
|
+
return 'object';
|
|
149
|
+
case Kind.INTERFACE_TYPE_EXTENSION:
|
|
150
|
+
return 'interface';
|
|
151
|
+
case Kind.UNION_TYPE_EXTENSION:
|
|
152
|
+
return 'union';
|
|
153
|
+
case Kind.ENUM_TYPE_EXTENSION:
|
|
154
|
+
return 'enum';
|
|
155
|
+
case Kind.INPUT_OBJECT_TYPE_EXTENSION:
|
|
156
|
+
return 'input object';
|
|
157
|
+
default:
|
|
158
|
+
return 'unknown type';
|
|
159
|
+
}
|
|
160
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
var _defKindToExtKind;
|
|
2
|
+
|
|
3
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Copyright (c) 2018-present, Facebook, Inc.
|
|
7
|
+
*
|
|
8
|
+
* This source code is licensed under the MIT license found in the
|
|
9
|
+
* LICENSE file in the root directory of this source tree.
|
|
10
|
+
*
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
import quotedOrList from '../../jsutils/quotedOrList';
|
|
14
|
+
import suggestionList from '../../jsutils/suggestionList';
|
|
15
|
+
import { GraphQLError } from '../../error/GraphQLError';
|
|
16
|
+
import { Kind } from '../../language/kinds';
|
|
17
|
+
import { isTypeDefinitionNode } from '../../language/predicates';
|
|
18
|
+
import { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from '../../type/definition';
|
|
19
|
+
export function extendingUnknownTypeMessage(typeName, suggestedTypes) {
|
|
20
|
+
var message = "Cannot extend type \"".concat(typeName, "\" because it does not defined.");
|
|
21
|
+
|
|
22
|
+
if (suggestedTypes.length) {
|
|
23
|
+
message += " Did you mean ".concat(quotedOrList(suggestedTypes), "?");
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return message;
|
|
27
|
+
}
|
|
28
|
+
export function extendingDifferentTypeKindMessage(typeName, kind) {
|
|
29
|
+
return "Cannot extend non-".concat(kind, " type \"").concat(typeName, "\".");
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Possible type extension
|
|
33
|
+
*
|
|
34
|
+
* A type extension is only valid if the type defined and have the same kind.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
export function PossibleTypeExtensions(context) {
|
|
38
|
+
var schema = context.getSchema();
|
|
39
|
+
var definedTypes = Object.create(null);
|
|
40
|
+
var _iteratorNormalCompletion = true;
|
|
41
|
+
var _didIteratorError = false;
|
|
42
|
+
var _iteratorError = undefined;
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
for (var _iterator = context.getDocument().definitions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
46
|
+
var def = _step.value;
|
|
47
|
+
|
|
48
|
+
if (isTypeDefinitionNode(def)) {
|
|
49
|
+
definedTypes[def.name.value] = def;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
} catch (err) {
|
|
53
|
+
_didIteratorError = true;
|
|
54
|
+
_iteratorError = err;
|
|
55
|
+
} finally {
|
|
56
|
+
try {
|
|
57
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
58
|
+
_iterator.return();
|
|
59
|
+
}
|
|
60
|
+
} finally {
|
|
61
|
+
if (_didIteratorError) {
|
|
62
|
+
throw _iteratorError;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return {
|
|
68
|
+
ScalarTypeExtension: checkExtension,
|
|
69
|
+
ObjectTypeExtension: checkExtension,
|
|
70
|
+
InterfaceTypeExtension: checkExtension,
|
|
71
|
+
UnionTypeExtension: checkExtension,
|
|
72
|
+
EnumTypeExtension: checkExtension,
|
|
73
|
+
InputObjectTypeExtension: checkExtension
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
function checkExtension(node) {
|
|
77
|
+
var typeName = node.name.value;
|
|
78
|
+
var defNode = definedTypes[typeName];
|
|
79
|
+
var existingType = schema && schema.getType(typeName);
|
|
80
|
+
|
|
81
|
+
if (defNode) {
|
|
82
|
+
var expectedKind = defKindToExtKind[defNode.kind];
|
|
83
|
+
|
|
84
|
+
if (expectedKind !== node.kind) {
|
|
85
|
+
context.reportError(new GraphQLError(extendingDifferentTypeKindMessage(typeName, extensionKindToTypeName(expectedKind)), [defNode, node]));
|
|
86
|
+
}
|
|
87
|
+
} else if (existingType) {
|
|
88
|
+
var _expectedKind = typeToExtKind(existingType);
|
|
89
|
+
|
|
90
|
+
if (_expectedKind !== node.kind) {
|
|
91
|
+
context.reportError(new GraphQLError(extendingDifferentTypeKindMessage(typeName, extensionKindToTypeName(_expectedKind)), node));
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
var allTypeNames = Object.keys(definedTypes);
|
|
95
|
+
|
|
96
|
+
if (schema) {
|
|
97
|
+
allTypeNames = allTypeNames.concat(Object.keys(schema.getTypeMap()));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
var suggestedTypes = suggestionList(typeName, allTypeNames);
|
|
101
|
+
context.reportError(new GraphQLError(extendingUnknownTypeMessage(typeName, suggestedTypes), node.name));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
var defKindToExtKind = (_defKindToExtKind = {}, _defineProperty(_defKindToExtKind, Kind.SCALAR_TYPE_DEFINITION, Kind.SCALAR_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.OBJECT_TYPE_DEFINITION, Kind.OBJECT_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INTERFACE_TYPE_DEFINITION, Kind.INTERFACE_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.UNION_TYPE_DEFINITION, Kind.UNION_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.ENUM_TYPE_DEFINITION, Kind.ENUM_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_EXTENSION), _defKindToExtKind);
|
|
106
|
+
|
|
107
|
+
function typeToExtKind(type) {
|
|
108
|
+
if (isScalarType(type)) {
|
|
109
|
+
return Kind.SCALAR_TYPE_EXTENSION;
|
|
110
|
+
} else if (isObjectType(type)) {
|
|
111
|
+
return Kind.OBJECT_TYPE_EXTENSION;
|
|
112
|
+
} else if (isInterfaceType(type)) {
|
|
113
|
+
return Kind.INTERFACE_TYPE_EXTENSION;
|
|
114
|
+
} else if (isUnionType(type)) {
|
|
115
|
+
return Kind.UNION_TYPE_EXTENSION;
|
|
116
|
+
} else if (isEnumType(type)) {
|
|
117
|
+
return Kind.ENUM_TYPE_EXTENSION;
|
|
118
|
+
} else if (isInputObjectType(type)) {
|
|
119
|
+
return Kind.INPUT_OBJECT_TYPE_EXTENSION;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function extensionKindToTypeName(kind) {
|
|
124
|
+
switch (kind) {
|
|
125
|
+
case Kind.SCALAR_TYPE_EXTENSION:
|
|
126
|
+
return 'scalar';
|
|
127
|
+
|
|
128
|
+
case Kind.OBJECT_TYPE_EXTENSION:
|
|
129
|
+
return 'object';
|
|
130
|
+
|
|
131
|
+
case Kind.INTERFACE_TYPE_EXTENSION:
|
|
132
|
+
return 'interface';
|
|
133
|
+
|
|
134
|
+
case Kind.UNION_TYPE_EXTENSION:
|
|
135
|
+
return 'union';
|
|
136
|
+
|
|
137
|
+
case Kind.ENUM_TYPE_EXTENSION:
|
|
138
|
+
return 'enum';
|
|
139
|
+
|
|
140
|
+
case Kind.INPUT_OBJECT_TYPE_EXTENSION:
|
|
141
|
+
return 'input object';
|
|
142
|
+
|
|
143
|
+
default:
|
|
144
|
+
return 'unknown type';
|
|
145
|
+
}
|
|
146
|
+
}
|
|
@@ -8,7 +8,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
8
8
|
* This source code is licensed under the MIT license found in the
|
|
9
9
|
* LICENSE file in the root directory of this source tree.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
*
|
|
12
12
|
*/
|
|
13
13
|
import { GraphQLError } from '../../error/GraphQLError';
|
|
14
14
|
import { Kind } from '../../language/kinds';
|
|
@@ -21,7 +21,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
21
21
|
* This source code is licensed under the MIT license found in the
|
|
22
22
|
* LICENSE file in the root directory of this source tree.
|
|
23
23
|
*
|
|
24
|
-
*
|
|
24
|
+
*
|
|
25
25
|
*/
|
|
26
26
|
function noSubselectionAllowedMessage(fieldName, type) {
|
|
27
27
|
return "Field \"".concat(fieldName, "\" must not have a selection since ") + "type \"".concat(type, "\" has no subfields.");
|
|
@@ -14,7 +14,7 @@ var _GraphQLError = require("../../error/GraphQLError");
|
|
|
14
14
|
* This source code is licensed under the MIT license found in the
|
|
15
15
|
* LICENSE file in the root directory of this source tree.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
*
|
|
18
18
|
*/
|
|
19
19
|
function singleFieldOnlyMessage(name) {
|
|
20
20
|
return (name ? "Subscription \"".concat(name, "\" ") : 'Anonymous Subscription ') + 'must select only one top level field.';
|
|
@@ -14,7 +14,7 @@ var _GraphQLError = require("../../error/GraphQLError");
|
|
|
14
14
|
* This source code is licensed under the MIT license found in the
|
|
15
15
|
* LICENSE file in the root directory of this source tree.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
*
|
|
18
18
|
*/
|
|
19
19
|
function duplicateArgMessage(argName) {
|
|
20
20
|
return "There can be only one argument named \"".concat(argName, "\".");
|