graphql 14.0.2 → 14.1.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/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.mjs +1 -1
- package/execution/index.mjs +1 -1
- package/execution/values.js +3 -3
- package/execution/values.js.flow +1 -1
- package/execution/values.mjs +2 -2
- package/graphql.js +1 -1
- package/graphql.mjs +1 -1
- package/index.js +12 -0
- package/index.js.flow +2 -0
- package/index.mjs +2 -2
- package/jsutils/dedent.js +1 -1
- package/jsutils/dedent.mjs +1 -1
- 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 +22 -11
- package/jsutils/inspect.js.flow +22 -2
- package/jsutils/inspect.mjs +21 -4
- 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 +1 -1
- package/language/blockStringValue.mjs +1 -1
- 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 +28 -12
- package/language/lexer.js.flow +33 -19
- package/language/lexer.mjs +27 -12
- 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 +6 -5
- package/language/visitor.js.flow +2 -4
- package/language/visitor.mjs +6 -5
- package/package.json +5 -2
- 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.mjs +1 -1
- 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 +53 -53
- package/utilities/buildASTSchema.js.flow +14 -30
- package/utilities/buildASTSchema.mjs +45 -55
- package/utilities/buildClientSchema.js +3 -3
- package/utilities/buildClientSchema.js.flow +6 -2
- package/utilities/buildClientSchema.mjs +3 -3
- 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.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 +56 -32
- package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +3 -3
- package/validation/rules/OverlappingFieldsCanBeMerged.mjs +47 -32
- 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
package/type/scalars.js
CHANGED
|
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.isSpecifiedScalarType = isSpecifiedScalarType;
|
|
7
7
|
exports.specifiedScalarTypes = exports.GraphQLID = exports.GraphQLBoolean = exports.GraphQLString = exports.GraphQLFloat = exports.GraphQLInt = void 0;
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _isFinite = _interopRequireDefault(require("../polyfills/isFinite"));
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _isInteger = _interopRequireDefault(require("../polyfills/isInteger"));
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
|
|
14
14
|
|
|
15
15
|
var _definition = require("./definition");
|
|
16
16
|
|
|
@@ -18,14 +18,8 @@ var _kinds = require("../language/kinds");
|
|
|
18
18
|
|
|
19
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
*
|
|
24
|
-
* This source code is licensed under the MIT license found in the
|
|
25
|
-
* LICENSE file in the root directory of this source tree.
|
|
26
|
-
*
|
|
27
|
-
* strict
|
|
28
|
-
*/
|
|
21
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
22
|
+
|
|
29
23
|
// As per the GraphQL Spec, Integers are only treated as valid when a valid
|
|
30
24
|
// 32-bit signed integer, providing the broadest support across platforms.
|
|
31
25
|
//
|
|
@@ -115,35 +109,54 @@ function coerceFloat(value) {
|
|
|
115
109
|
|
|
116
110
|
var GraphQLFloat = new _definition.GraphQLScalarType({
|
|
117
111
|
name: 'Float',
|
|
118
|
-
description: 'The `Float` scalar type represents signed double-precision fractional ' + 'values as specified by ' + '[IEEE 754](
|
|
112
|
+
description: 'The `Float` scalar type represents signed double-precision fractional ' + 'values as specified by ' + '[IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). ',
|
|
119
113
|
serialize: serializeFloat,
|
|
120
114
|
parseValue: coerceFloat,
|
|
121
115
|
parseLiteral: function parseLiteral(ast) {
|
|
122
116
|
return ast.kind === _kinds.Kind.FLOAT || ast.kind === _kinds.Kind.INT ? parseFloat(ast.value) : undefined;
|
|
123
117
|
}
|
|
124
|
-
});
|
|
118
|
+
}); // Support serializing objects with custom valueOf() or toJSON() functions -
|
|
119
|
+
// a common way to represent a complex value which can be represented as
|
|
120
|
+
// a string (ex: MongoDB id objects).
|
|
121
|
+
|
|
125
122
|
exports.GraphQLFloat = GraphQLFloat;
|
|
126
123
|
|
|
127
|
-
function
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
124
|
+
function serializeObject(value) {
|
|
125
|
+
if (_typeof(value) === 'object' && value !== null) {
|
|
126
|
+
if (typeof value.valueOf === 'function') {
|
|
127
|
+
var valueOfResult = value.valueOf();
|
|
128
|
+
|
|
129
|
+
if (_typeof(valueOfResult) !== 'object') {
|
|
130
|
+
return valueOfResult;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (typeof value.toJSON === 'function') {
|
|
135
|
+
// $FlowFixMe(>=0.90.0)
|
|
136
|
+
return value.toJSON();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return value;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
function serializeString(rawValue) {
|
|
144
|
+
var value = serializeObject(rawValue); // Serialize string, boolean and number values to a string, but do not
|
|
132
145
|
// attempt to coerce object, function, symbol, or other types as strings.
|
|
133
146
|
|
|
134
|
-
if (typeof
|
|
135
|
-
return
|
|
147
|
+
if (typeof value === 'string') {
|
|
148
|
+
return value;
|
|
136
149
|
}
|
|
137
150
|
|
|
138
|
-
if (typeof
|
|
139
|
-
return
|
|
151
|
+
if (typeof value === 'boolean') {
|
|
152
|
+
return value ? 'true' : 'false';
|
|
140
153
|
}
|
|
141
154
|
|
|
142
|
-
if ((0, _isFinite.default)(
|
|
143
|
-
return
|
|
155
|
+
if ((0, _isFinite.default)(value)) {
|
|
156
|
+
return value.toString();
|
|
144
157
|
}
|
|
145
158
|
|
|
146
|
-
throw new TypeError("String cannot represent value: ".concat((0, _inspect.default)(
|
|
159
|
+
throw new TypeError("String cannot represent value: ".concat((0, _inspect.default)(rawValue)));
|
|
147
160
|
}
|
|
148
161
|
|
|
149
162
|
function coerceString(value) {
|
|
@@ -196,20 +209,18 @@ var GraphQLBoolean = new _definition.GraphQLScalarType({
|
|
|
196
209
|
});
|
|
197
210
|
exports.GraphQLBoolean = GraphQLBoolean;
|
|
198
211
|
|
|
199
|
-
function serializeID(
|
|
200
|
-
|
|
201
|
-
// to represent an object identifier (ex. MongoDB).
|
|
202
|
-
var result = value && typeof value.valueOf === 'function' ? value.valueOf() : value;
|
|
212
|
+
function serializeID(rawValue) {
|
|
213
|
+
var value = serializeObject(rawValue);
|
|
203
214
|
|
|
204
|
-
if (typeof
|
|
205
|
-
return
|
|
215
|
+
if (typeof value === 'string') {
|
|
216
|
+
return value;
|
|
206
217
|
}
|
|
207
218
|
|
|
208
|
-
if ((0, _isInteger.default)(
|
|
209
|
-
return String(
|
|
219
|
+
if ((0, _isInteger.default)(value)) {
|
|
220
|
+
return String(value);
|
|
210
221
|
}
|
|
211
222
|
|
|
212
|
-
throw new TypeError("ID cannot represent value: ".concat((0, _inspect.default)(
|
|
223
|
+
throw new TypeError("ID cannot represent value: ".concat((0, _inspect.default)(rawValue)));
|
|
213
224
|
}
|
|
214
225
|
|
|
215
226
|
function coerceID(value) {
|
package/type/scalars.js.flow
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import isFinite from '../polyfills/isFinite';
|
|
11
|
+
import isInteger from '../polyfills/isInteger';
|
|
10
12
|
import inspect from '../jsutils/inspect';
|
|
11
|
-
import isFinite from '../jsutils/isFinite';
|
|
12
|
-
import isInteger from '../jsutils/isInteger';
|
|
13
13
|
import { GraphQLScalarType, isNamedType } from './definition';
|
|
14
14
|
import { Kind } from '../language/kinds';
|
|
15
15
|
|
|
@@ -107,7 +107,7 @@ export const GraphQLFloat = new GraphQLScalarType({
|
|
|
107
107
|
description:
|
|
108
108
|
'The `Float` scalar type represents signed double-precision fractional ' +
|
|
109
109
|
'values as specified by ' +
|
|
110
|
-
'[IEEE 754](
|
|
110
|
+
'[IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). ',
|
|
111
111
|
serialize: serializeFloat,
|
|
112
112
|
parseValue: coerceFloat,
|
|
113
113
|
parseLiteral(ast) {
|
|
@@ -117,24 +117,40 @@ export const GraphQLFloat = new GraphQLScalarType({
|
|
|
117
117
|
},
|
|
118
118
|
});
|
|
119
119
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
120
|
+
// Support serializing objects with custom valueOf() or toJSON() functions -
|
|
121
|
+
// a common way to represent a complex value which can be represented as
|
|
122
|
+
// a string (ex: MongoDB id objects).
|
|
123
|
+
function serializeObject(value: mixed): mixed {
|
|
124
|
+
if (typeof value === 'object' && value !== null) {
|
|
125
|
+
if (typeof value.valueOf === 'function') {
|
|
126
|
+
const valueOfResult = value.valueOf();
|
|
127
|
+
if (typeof valueOfResult !== 'object') {
|
|
128
|
+
return valueOfResult;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (typeof value.toJSON === 'function') {
|
|
132
|
+
// $FlowFixMe(>=0.90.0)
|
|
133
|
+
return value.toJSON();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return value;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function serializeString(rawValue: mixed): string {
|
|
140
|
+
const value = serializeObject(rawValue);
|
|
141
|
+
|
|
126
142
|
// Serialize string, boolean and number values to a string, but do not
|
|
127
143
|
// attempt to coerce object, function, symbol, or other types as strings.
|
|
128
|
-
if (typeof
|
|
129
|
-
return
|
|
144
|
+
if (typeof value === 'string') {
|
|
145
|
+
return value;
|
|
130
146
|
}
|
|
131
|
-
if (typeof
|
|
132
|
-
return
|
|
147
|
+
if (typeof value === 'boolean') {
|
|
148
|
+
return value ? 'true' : 'false';
|
|
133
149
|
}
|
|
134
|
-
if (isFinite(
|
|
135
|
-
return
|
|
150
|
+
if (isFinite(value)) {
|
|
151
|
+
return value.toString();
|
|
136
152
|
}
|
|
137
|
-
throw new TypeError(`String cannot represent value: ${inspect(
|
|
153
|
+
throw new TypeError(`String cannot represent value: ${inspect(rawValue)}`);
|
|
138
154
|
}
|
|
139
155
|
|
|
140
156
|
function coerceString(value: mixed): string {
|
|
@@ -190,18 +206,16 @@ export const GraphQLBoolean = new GraphQLScalarType({
|
|
|
190
206
|
},
|
|
191
207
|
});
|
|
192
208
|
|
|
193
|
-
function serializeID(
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
if (typeof result === 'string') {
|
|
199
|
-
return result;
|
|
209
|
+
function serializeID(rawValue: mixed): string {
|
|
210
|
+
const value = serializeObject(rawValue);
|
|
211
|
+
|
|
212
|
+
if (typeof value === 'string') {
|
|
213
|
+
return value;
|
|
200
214
|
}
|
|
201
|
-
if (isInteger(
|
|
202
|
-
return String(
|
|
215
|
+
if (isInteger(value)) {
|
|
216
|
+
return String(value);
|
|
203
217
|
}
|
|
204
|
-
throw new TypeError(`ID cannot represent value: ${inspect(
|
|
218
|
+
throw new TypeError(`ID cannot represent value: ${inspect(rawValue)}`);
|
|
205
219
|
}
|
|
206
220
|
|
|
207
221
|
function coerceID(value: mixed): string {
|
package/type/scalars.mjs
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
5
|
*
|
|
4
6
|
* This source code is licensed under the MIT license found in the
|
|
5
7
|
* LICENSE file in the root directory of this source tree.
|
|
6
8
|
*
|
|
7
|
-
*
|
|
9
|
+
*
|
|
8
10
|
*/
|
|
11
|
+
import isFinite from '../polyfills/isFinite';
|
|
12
|
+
import isInteger from '../polyfills/isInteger';
|
|
9
13
|
import inspect from '../jsutils/inspect';
|
|
10
|
-
import isFinite from '../jsutils/isFinite';
|
|
11
|
-
import isInteger from '../jsutils/isInteger';
|
|
12
14
|
import { GraphQLScalarType, isNamedType } from './definition';
|
|
13
15
|
import { Kind } from '../language/kinds'; // As per the GraphQL Spec, Integers are only treated as valid when a valid
|
|
14
16
|
// 32-bit signed integer, providing the broadest support across platforms.
|
|
@@ -99,34 +101,52 @@ function coerceFloat(value) {
|
|
|
99
101
|
|
|
100
102
|
export var GraphQLFloat = new GraphQLScalarType({
|
|
101
103
|
name: 'Float',
|
|
102
|
-
description: 'The `Float` scalar type represents signed double-precision fractional ' + 'values as specified by ' + '[IEEE 754](
|
|
104
|
+
description: 'The `Float` scalar type represents signed double-precision fractional ' + 'values as specified by ' + '[IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). ',
|
|
103
105
|
serialize: serializeFloat,
|
|
104
106
|
parseValue: coerceFloat,
|
|
105
107
|
parseLiteral: function parseLiteral(ast) {
|
|
106
108
|
return ast.kind === Kind.FLOAT || ast.kind === Kind.INT ? parseFloat(ast.value) : undefined;
|
|
107
109
|
}
|
|
108
|
-
});
|
|
110
|
+
}); // Support serializing objects with custom valueOf() or toJSON() functions -
|
|
111
|
+
// a common way to represent a complex value which can be represented as
|
|
112
|
+
// a string (ex: MongoDB id objects).
|
|
113
|
+
|
|
114
|
+
function serializeObject(value) {
|
|
115
|
+
if (_typeof(value) === 'object' && value !== null) {
|
|
116
|
+
if (typeof value.valueOf === 'function') {
|
|
117
|
+
var valueOfResult = value.valueOf();
|
|
118
|
+
|
|
119
|
+
if (_typeof(valueOfResult) !== 'object') {
|
|
120
|
+
return valueOfResult;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
109
123
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
124
|
+
if (typeof value.toJSON === 'function') {
|
|
125
|
+
// $FlowFixMe(>=0.90.0)
|
|
126
|
+
return value.toJSON();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return value;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function serializeString(rawValue) {
|
|
134
|
+
var value = serializeObject(rawValue); // Serialize string, boolean and number values to a string, but do not
|
|
115
135
|
// attempt to coerce object, function, symbol, or other types as strings.
|
|
116
136
|
|
|
117
|
-
if (typeof
|
|
118
|
-
return
|
|
137
|
+
if (typeof value === 'string') {
|
|
138
|
+
return value;
|
|
119
139
|
}
|
|
120
140
|
|
|
121
|
-
if (typeof
|
|
122
|
-
return
|
|
141
|
+
if (typeof value === 'boolean') {
|
|
142
|
+
return value ? 'true' : 'false';
|
|
123
143
|
}
|
|
124
144
|
|
|
125
|
-
if (isFinite(
|
|
126
|
-
return
|
|
145
|
+
if (isFinite(value)) {
|
|
146
|
+
return value.toString();
|
|
127
147
|
}
|
|
128
148
|
|
|
129
|
-
throw new TypeError("String cannot represent value: ".concat(inspect(
|
|
149
|
+
throw new TypeError("String cannot represent value: ".concat(inspect(rawValue)));
|
|
130
150
|
}
|
|
131
151
|
|
|
132
152
|
function coerceString(value) {
|
|
@@ -177,20 +197,18 @@ export var GraphQLBoolean = new GraphQLScalarType({
|
|
|
177
197
|
}
|
|
178
198
|
});
|
|
179
199
|
|
|
180
|
-
function serializeID(
|
|
181
|
-
|
|
182
|
-
// to represent an object identifier (ex. MongoDB).
|
|
183
|
-
var result = value && typeof value.valueOf === 'function' ? value.valueOf() : value;
|
|
200
|
+
function serializeID(rawValue) {
|
|
201
|
+
var value = serializeObject(rawValue);
|
|
184
202
|
|
|
185
|
-
if (typeof
|
|
186
|
-
return
|
|
203
|
+
if (typeof value === 'string') {
|
|
204
|
+
return value;
|
|
187
205
|
}
|
|
188
206
|
|
|
189
|
-
if (isInteger(
|
|
190
|
-
return String(
|
|
207
|
+
if (isInteger(value)) {
|
|
208
|
+
return String(value);
|
|
191
209
|
}
|
|
192
210
|
|
|
193
|
-
throw new TypeError("ID cannot represent value: ".concat(inspect(
|
|
211
|
+
throw new TypeError("ID cannot represent value: ".concat(inspect(rawValue)));
|
|
194
212
|
}
|
|
195
213
|
|
|
196
214
|
function coerceID(value) {
|
package/type/schema.js
CHANGED
|
@@ -4,8 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.isSchema = isSchema;
|
|
7
|
+
exports.assertSchema = assertSchema;
|
|
7
8
|
exports.GraphQLSchema = void 0;
|
|
8
9
|
|
|
10
|
+
var _find = _interopRequireDefault(require("../polyfills/find"));
|
|
11
|
+
|
|
12
|
+
var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
|
|
13
|
+
|
|
9
14
|
var _definition = require("./definition");
|
|
10
15
|
|
|
11
16
|
var _directives = require("./directives");
|
|
@@ -16,24 +21,23 @@ var _introspection = require("./introspection");
|
|
|
16
21
|
|
|
17
22
|
var _defineToStringTag = _interopRequireDefault(require("../jsutils/defineToStringTag"));
|
|
18
23
|
|
|
19
|
-
var _find = _interopRequireDefault(require("../jsutils/find"));
|
|
20
|
-
|
|
21
24
|
var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf"));
|
|
22
25
|
|
|
23
26
|
var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
|
|
24
27
|
|
|
25
|
-
var _objectValues = _interopRequireDefault(require("../jsutils/objectValues"));
|
|
26
|
-
|
|
27
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
28
29
|
|
|
29
30
|
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
30
31
|
|
|
31
|
-
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; }
|
|
32
|
-
|
|
33
32
|
// eslint-disable-next-line no-redeclare
|
|
34
33
|
function isSchema(schema) {
|
|
35
34
|
return (0, _instanceOf.default)(schema, GraphQLSchema);
|
|
36
35
|
}
|
|
36
|
+
|
|
37
|
+
function assertSchema(schema) {
|
|
38
|
+
!isSchema(schema) ? (0, _invariant.default)(0, "Expected ".concat((0, _inspect.default)(schema), " to be a GraphQL schema.")) : void 0;
|
|
39
|
+
return schema;
|
|
40
|
+
}
|
|
37
41
|
/**
|
|
38
42
|
* Schema Definition
|
|
39
43
|
*
|
|
@@ -68,35 +72,14 @@ function () {
|
|
|
68
72
|
// Used as a cache for validateSchema().
|
|
69
73
|
// Referenced by validateSchema().
|
|
70
74
|
function GraphQLSchema(config) {
|
|
71
|
-
_defineProperty(this, "astNode", void 0);
|
|
72
|
-
|
|
73
|
-
_defineProperty(this, "extensionASTNodes", void 0);
|
|
74
|
-
|
|
75
|
-
_defineProperty(this, "_queryType", void 0);
|
|
76
|
-
|
|
77
|
-
_defineProperty(this, "_mutationType", void 0);
|
|
78
|
-
|
|
79
|
-
_defineProperty(this, "_subscriptionType", void 0);
|
|
80
|
-
|
|
81
|
-
_defineProperty(this, "_directives", void 0);
|
|
82
|
-
|
|
83
|
-
_defineProperty(this, "_typeMap", void 0);
|
|
84
|
-
|
|
85
|
-
_defineProperty(this, "_implementations", void 0);
|
|
86
|
-
|
|
87
|
-
_defineProperty(this, "_possibleTypeMap", void 0);
|
|
88
|
-
|
|
89
|
-
_defineProperty(this, "__validationErrors", void 0);
|
|
90
|
-
|
|
91
|
-
_defineProperty(this, "__allowedLegacyNames", void 0);
|
|
92
|
-
|
|
93
75
|
// If this schema was built from a source known to be valid, then it may be
|
|
94
76
|
// marked with assumeValid to avoid an additional type system validation.
|
|
95
77
|
if (config && config.assumeValid) {
|
|
96
78
|
this.__validationErrors = [];
|
|
97
79
|
} else {
|
|
98
|
-
// Otherwise check for common mistakes during construction to produce
|
|
80
|
+
this.__validationErrors = undefined; // Otherwise check for common mistakes during construction to produce
|
|
99
81
|
// clear and early error messages.
|
|
82
|
+
|
|
100
83
|
!(_typeof(config) === 'object') ? (0, _invariant.default)(0, 'Must provide configuration object.') : void 0;
|
|
101
84
|
!(!config.types || Array.isArray(config.types)) ? (0, _invariant.default)(0, "\"types\" must be Array if provided but got: ".concat((0, _inspect.default)(config.types), ".")) : void 0;
|
|
102
85
|
!(!config.directives || Array.isArray(config.directives)) ? (0, _invariant.default)(0, '"directives" must be Array if provided but got: ' + "".concat((0, _inspect.default)(config.directives), ".")) : void 0;
|
|
@@ -126,51 +109,67 @@ function () {
|
|
|
126
109
|
|
|
127
110
|
typeMap = this._directives.reduce(typeMapDirectiveReducer, typeMap); // Storing the resulting map for reference by the schema.
|
|
128
111
|
|
|
129
|
-
this._typeMap = typeMap;
|
|
112
|
+
this._typeMap = typeMap;
|
|
113
|
+
this._possibleTypeMap = Object.create(null); // Keep track of all implementations by interface name.
|
|
130
114
|
|
|
131
115
|
this._implementations = Object.create(null);
|
|
116
|
+
var _iteratorNormalCompletion = true;
|
|
117
|
+
var _didIteratorError = false;
|
|
118
|
+
var _iteratorError = undefined;
|
|
132
119
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
var typeName = _arr[_i];
|
|
137
|
-
var type = this._typeMap[typeName];
|
|
120
|
+
try {
|
|
121
|
+
for (var _iterator = (0, _objectValues.default)(this._typeMap)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
122
|
+
var type = _step.value;
|
|
138
123
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
124
|
+
if ((0, _definition.isObjectType)(type)) {
|
|
125
|
+
var _iteratorNormalCompletion2 = true;
|
|
126
|
+
var _didIteratorError2 = false;
|
|
127
|
+
var _iteratorError2 = undefined;
|
|
143
128
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
129
|
+
try {
|
|
130
|
+
for (var _iterator2 = type.getInterfaces()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
131
|
+
var iface = _step2.value;
|
|
147
132
|
|
|
148
|
-
|
|
149
|
-
|
|
133
|
+
if ((0, _definition.isInterfaceType)(iface)) {
|
|
134
|
+
var impls = this._implementations[iface.name];
|
|
150
135
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
136
|
+
if (impls) {
|
|
137
|
+
impls.push(type);
|
|
138
|
+
} else {
|
|
139
|
+
this._implementations[iface.name] = [type];
|
|
140
|
+
}
|
|
155
141
|
}
|
|
156
142
|
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
_iteratorError = err;
|
|
161
|
-
} finally {
|
|
162
|
-
try {
|
|
163
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
164
|
-
_iterator.return();
|
|
165
|
-
}
|
|
143
|
+
} catch (err) {
|
|
144
|
+
_didIteratorError2 = true;
|
|
145
|
+
_iteratorError2 = err;
|
|
166
146
|
} finally {
|
|
167
|
-
|
|
168
|
-
|
|
147
|
+
try {
|
|
148
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
149
|
+
_iterator2.return();
|
|
150
|
+
}
|
|
151
|
+
} finally {
|
|
152
|
+
if (_didIteratorError2) {
|
|
153
|
+
throw _iteratorError2;
|
|
154
|
+
}
|
|
169
155
|
}
|
|
170
156
|
}
|
|
157
|
+
} else if ((0, _definition.isAbstractType)(type) && !this._implementations[type.name]) {
|
|
158
|
+
this._implementations[type.name] = [];
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
} catch (err) {
|
|
162
|
+
_didIteratorError = true;
|
|
163
|
+
_iteratorError = err;
|
|
164
|
+
} finally {
|
|
165
|
+
try {
|
|
166
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
167
|
+
_iterator.return();
|
|
168
|
+
}
|
|
169
|
+
} finally {
|
|
170
|
+
if (_didIteratorError) {
|
|
171
|
+
throw _iteratorError;
|
|
171
172
|
}
|
|
172
|
-
} else if ((0, _definition.isAbstractType)(type) && !this._implementations[type.name]) {
|
|
173
|
-
this._implementations[type.name] = [];
|
|
174
173
|
}
|
|
175
174
|
}
|
|
176
175
|
}
|
|
@@ -208,10 +207,6 @@ function () {
|
|
|
208
207
|
_proto.isPossibleType = function isPossibleType(abstractType, possibleType) {
|
|
209
208
|
var possibleTypeMap = this._possibleTypeMap;
|
|
210
209
|
|
|
211
|
-
if (!possibleTypeMap) {
|
|
212
|
-
this._possibleTypeMap = possibleTypeMap = Object.create(null);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
210
|
if (!possibleTypeMap[abstractType.name]) {
|
|
216
211
|
var possibleTypes = this.getPossibleTypes(abstractType);
|
|
217
212
|
possibleTypeMap[abstractType.name] = possibleTypes.reduce(function (map, type) {
|
|
@@ -265,13 +260,13 @@ function typeMapReducer(map, type) {
|
|
|
265
260
|
}
|
|
266
261
|
|
|
267
262
|
if ((0, _definition.isObjectType)(type) || (0, _definition.isInterfaceType)(type)) {
|
|
268
|
-
var
|
|
269
|
-
var
|
|
270
|
-
var
|
|
263
|
+
var _iteratorNormalCompletion3 = true;
|
|
264
|
+
var _didIteratorError3 = false;
|
|
265
|
+
var _iteratorError3 = undefined;
|
|
271
266
|
|
|
272
267
|
try {
|
|
273
|
-
for (var
|
|
274
|
-
var field =
|
|
268
|
+
for (var _iterator3 = (0, _objectValues.default)(type.getFields())[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
|
269
|
+
var field = _step3.value;
|
|
275
270
|
|
|
276
271
|
if (field.args) {
|
|
277
272
|
var fieldArgTypes = field.args.map(function (arg) {
|
|
@@ -283,42 +278,42 @@ function typeMapReducer(map, type) {
|
|
|
283
278
|
reducedMap = typeMapReducer(reducedMap, field.type);
|
|
284
279
|
}
|
|
285
280
|
} catch (err) {
|
|
286
|
-
|
|
287
|
-
|
|
281
|
+
_didIteratorError3 = true;
|
|
282
|
+
_iteratorError3 = err;
|
|
288
283
|
} finally {
|
|
289
284
|
try {
|
|
290
|
-
if (!
|
|
291
|
-
|
|
285
|
+
if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
|
|
286
|
+
_iterator3.return();
|
|
292
287
|
}
|
|
293
288
|
} finally {
|
|
294
|
-
if (
|
|
295
|
-
throw
|
|
289
|
+
if (_didIteratorError3) {
|
|
290
|
+
throw _iteratorError3;
|
|
296
291
|
}
|
|
297
292
|
}
|
|
298
293
|
}
|
|
299
294
|
}
|
|
300
295
|
|
|
301
296
|
if ((0, _definition.isInputObjectType)(type)) {
|
|
302
|
-
var
|
|
303
|
-
var
|
|
304
|
-
var
|
|
297
|
+
var _iteratorNormalCompletion4 = true;
|
|
298
|
+
var _didIteratorError4 = false;
|
|
299
|
+
var _iteratorError4 = undefined;
|
|
305
300
|
|
|
306
301
|
try {
|
|
307
|
-
for (var
|
|
308
|
-
var _field =
|
|
302
|
+
for (var _iterator4 = (0, _objectValues.default)(type.getFields())[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
|
303
|
+
var _field = _step4.value;
|
|
309
304
|
reducedMap = typeMapReducer(reducedMap, _field.type);
|
|
310
305
|
}
|
|
311
306
|
} catch (err) {
|
|
312
|
-
|
|
313
|
-
|
|
307
|
+
_didIteratorError4 = true;
|
|
308
|
+
_iteratorError4 = err;
|
|
314
309
|
} finally {
|
|
315
310
|
try {
|
|
316
|
-
if (!
|
|
317
|
-
|
|
311
|
+
if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
|
|
312
|
+
_iterator4.return();
|
|
318
313
|
}
|
|
319
314
|
} finally {
|
|
320
|
-
if (
|
|
321
|
-
throw
|
|
315
|
+
if (_didIteratorError4) {
|
|
316
|
+
throw _iteratorError4;
|
|
322
317
|
}
|
|
323
318
|
}
|
|
324
319
|
}
|