diff options
Diffstat (limited to 'alarm/node_modules/graphql/utilities/buildClientSchema.js')
-rw-r--r-- | alarm/node_modules/graphql/utilities/buildClientSchema.js | 335 |
1 files changed, 0 insertions, 335 deletions
diff --git a/alarm/node_modules/graphql/utilities/buildClientSchema.js b/alarm/node_modules/graphql/utilities/buildClientSchema.js deleted file mode 100644 index 979f6d0..0000000 --- a/alarm/node_modules/graphql/utilities/buildClientSchema.js +++ /dev/null @@ -1,335 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.buildClientSchema = buildClientSchema; - -var _objectValues = _interopRequireDefault(require("../polyfills/objectValues.js")); - -var _inspect = _interopRequireDefault(require("../jsutils/inspect.js")); - -var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js")); - -var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap.js")); - -var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js")); - -var _parser = require("../language/parser.js"); - -var _schema = require("../type/schema.js"); - -var _directives = require("../type/directives.js"); - -var _scalars = require("../type/scalars.js"); - -var _introspection = require("../type/introspection.js"); - -var _definition = require("../type/definition.js"); - -var _valueFromAST = require("./valueFromAST.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Build a GraphQLSchema for use by client tools. - * - * Given the result of a client running the introspection query, creates and - * returns a GraphQLSchema instance which can be then used with all graphql-js - * tools, but cannot be used to execute a query, as introspection does not - * represent the "resolver", "parse" or "serialize" functions or any other - * server-internal mechanisms. - * - * This function expects a complete introspection result. Don't forget to check - * the "errors" field of a server response before calling this function. - */ -function buildClientSchema(introspection, options) { - (0, _isObjectLike.default)(introspection) && (0, _isObjectLike.default)(introspection.__schema) || (0, _devAssert.default)(0, "Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: ".concat((0, _inspect.default)(introspection), ".")); // Get the schema from the introspection result. - - var schemaIntrospection = introspection.__schema; // Iterate through all types, getting the type definition for each. - - var typeMap = (0, _keyValMap.default)(schemaIntrospection.types, function (typeIntrospection) { - return typeIntrospection.name; - }, function (typeIntrospection) { - return buildType(typeIntrospection); - }); // Include standard types only if they are used. - - for (var _i2 = 0, _ref2 = [].concat(_scalars.specifiedScalarTypes, _introspection.introspectionTypes); _i2 < _ref2.length; _i2++) { - var stdType = _ref2[_i2]; - - if (typeMap[stdType.name]) { - typeMap[stdType.name] = stdType; - } - } // Get the root Query, Mutation, and Subscription types. - - - var queryType = schemaIntrospection.queryType ? getObjectType(schemaIntrospection.queryType) : null; - var mutationType = schemaIntrospection.mutationType ? getObjectType(schemaIntrospection.mutationType) : null; - var subscriptionType = schemaIntrospection.subscriptionType ? getObjectType(schemaIntrospection.subscriptionType) : null; // Get the directives supported by Introspection, assuming empty-set if - // directives were not queried for. - - var directives = schemaIntrospection.directives ? schemaIntrospection.directives.map(buildDirective) : []; // Then produce and return a Schema with these types. - - return new _schema.GraphQLSchema({ - description: schemaIntrospection.description, - query: queryType, - mutation: mutationType, - subscription: subscriptionType, - types: (0, _objectValues.default)(typeMap), - directives: directives, - assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid - }); // Given a type reference in introspection, return the GraphQLType instance. - // preferring cached instances before building new instances. - - function getType(typeRef) { - if (typeRef.kind === _introspection.TypeKind.LIST) { - var itemRef = typeRef.ofType; - - if (!itemRef) { - throw new Error('Decorated type deeper than introspection query.'); - } - - return new _definition.GraphQLList(getType(itemRef)); - } - - if (typeRef.kind === _introspection.TypeKind.NON_NULL) { - var nullableRef = typeRef.ofType; - - if (!nullableRef) { - throw new Error('Decorated type deeper than introspection query.'); - } - - var nullableType = getType(nullableRef); - return new _definition.GraphQLNonNull((0, _definition.assertNullableType)(nullableType)); - } - - return getNamedType(typeRef); - } - - function getNamedType(typeRef) { - var typeName = typeRef.name; - - if (!typeName) { - throw new Error("Unknown type reference: ".concat((0, _inspect.default)(typeRef), ".")); - } - - var type = typeMap[typeName]; - - if (!type) { - throw new Error("Invalid or incomplete schema, unknown type: ".concat(typeName, ". Ensure that a full introspection query is used in order to build a client schema.")); - } - - return type; - } - - function getObjectType(typeRef) { - return (0, _definition.assertObjectType)(getNamedType(typeRef)); - } - - function getInterfaceType(typeRef) { - return (0, _definition.assertInterfaceType)(getNamedType(typeRef)); - } // Given a type's introspection result, construct the correct - // GraphQLType instance. - - - function buildType(type) { - if (type != null && type.name != null && type.kind != null) { - switch (type.kind) { - case _introspection.TypeKind.SCALAR: - return buildScalarDef(type); - - case _introspection.TypeKind.OBJECT: - return buildObjectDef(type); - - case _introspection.TypeKind.INTERFACE: - return buildInterfaceDef(type); - - case _introspection.TypeKind.UNION: - return buildUnionDef(type); - - case _introspection.TypeKind.ENUM: - return buildEnumDef(type); - - case _introspection.TypeKind.INPUT_OBJECT: - return buildInputObjectDef(type); - } - } - - var typeStr = (0, _inspect.default)(type); - throw new Error("Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ".concat(typeStr, ".")); - } - - function buildScalarDef(scalarIntrospection) { - return new _definition.GraphQLScalarType({ - name: scalarIntrospection.name, - description: scalarIntrospection.description, - specifiedByUrl: scalarIntrospection.specifiedByUrl - }); - } - - function buildImplementationsList(implementingIntrospection) { - // TODO: Temporary workaround until GraphQL ecosystem will fully support - // 'interfaces' on interface types. - if (implementingIntrospection.interfaces === null && implementingIntrospection.kind === _introspection.TypeKind.INTERFACE) { - return []; - } - - if (!implementingIntrospection.interfaces) { - var implementingIntrospectionStr = (0, _inspect.default)(implementingIntrospection); - throw new Error("Introspection result missing interfaces: ".concat(implementingIntrospectionStr, ".")); - } - - return implementingIntrospection.interfaces.map(getInterfaceType); - } - - function buildObjectDef(objectIntrospection) { - return new _definition.GraphQLObjectType({ - name: objectIntrospection.name, - description: objectIntrospection.description, - interfaces: function interfaces() { - return buildImplementationsList(objectIntrospection); - }, - fields: function fields() { - return buildFieldDefMap(objectIntrospection); - } - }); - } - - function buildInterfaceDef(interfaceIntrospection) { - return new _definition.GraphQLInterfaceType({ - name: interfaceIntrospection.name, - description: interfaceIntrospection.description, - interfaces: function interfaces() { - return buildImplementationsList(interfaceIntrospection); - }, - fields: function fields() { - return buildFieldDefMap(interfaceIntrospection); - } - }); - } - - function buildUnionDef(unionIntrospection) { - if (!unionIntrospection.possibleTypes) { - var unionIntrospectionStr = (0, _inspect.default)(unionIntrospection); - throw new Error("Introspection result missing possibleTypes: ".concat(unionIntrospectionStr, ".")); - } - - return new _definition.GraphQLUnionType({ - name: unionIntrospection.name, - description: unionIntrospection.description, - types: function types() { - return unionIntrospection.possibleTypes.map(getObjectType); - } - }); - } - - function buildEnumDef(enumIntrospection) { - if (!enumIntrospection.enumValues) { - var enumIntrospectionStr = (0, _inspect.default)(enumIntrospection); - throw new Error("Introspection result missing enumValues: ".concat(enumIntrospectionStr, ".")); - } - - return new _definition.GraphQLEnumType({ - name: enumIntrospection.name, - description: enumIntrospection.description, - values: (0, _keyValMap.default)(enumIntrospection.enumValues, function (valueIntrospection) { - return valueIntrospection.name; - }, function (valueIntrospection) { - return { - description: valueIntrospection.description, - deprecationReason: valueIntrospection.deprecationReason - }; - }) - }); - } - - function buildInputObjectDef(inputObjectIntrospection) { - if (!inputObjectIntrospection.inputFields) { - var inputObjectIntrospectionStr = (0, _inspect.default)(inputObjectIntrospection); - throw new Error("Introspection result missing inputFields: ".concat(inputObjectIntrospectionStr, ".")); - } - - return new _definition.GraphQLInputObjectType({ - name: inputObjectIntrospection.name, - description: inputObjectIntrospection.description, - fields: function fields() { - return buildInputValueDefMap(inputObjectIntrospection.inputFields); - } - }); - } - - function buildFieldDefMap(typeIntrospection) { - if (!typeIntrospection.fields) { - throw new Error("Introspection result missing fields: ".concat((0, _inspect.default)(typeIntrospection), ".")); - } - - return (0, _keyValMap.default)(typeIntrospection.fields, function (fieldIntrospection) { - return fieldIntrospection.name; - }, buildField); - } - - function buildField(fieldIntrospection) { - var type = getType(fieldIntrospection.type); - - if (!(0, _definition.isOutputType)(type)) { - var typeStr = (0, _inspect.default)(type); - throw new Error("Introspection must provide output type for fields, but received: ".concat(typeStr, ".")); - } - - if (!fieldIntrospection.args) { - var fieldIntrospectionStr = (0, _inspect.default)(fieldIntrospection); - throw new Error("Introspection result missing field args: ".concat(fieldIntrospectionStr, ".")); - } - - return { - description: fieldIntrospection.description, - deprecationReason: fieldIntrospection.deprecationReason, - type: type, - args: buildInputValueDefMap(fieldIntrospection.args) - }; - } - - function buildInputValueDefMap(inputValueIntrospections) { - return (0, _keyValMap.default)(inputValueIntrospections, function (inputValue) { - return inputValue.name; - }, buildInputValue); - } - - function buildInputValue(inputValueIntrospection) { - var type = getType(inputValueIntrospection.type); - - if (!(0, _definition.isInputType)(type)) { - var typeStr = (0, _inspect.default)(type); - throw new Error("Introspection must provide input type for arguments, but received: ".concat(typeStr, ".")); - } - - var defaultValue = inputValueIntrospection.defaultValue != null ? (0, _valueFromAST.valueFromAST)((0, _parser.parseValue)(inputValueIntrospection.defaultValue), type) : undefined; - return { - description: inputValueIntrospection.description, - type: type, - defaultValue: defaultValue, - deprecationReason: inputValueIntrospection.deprecationReason - }; - } - - function buildDirective(directiveIntrospection) { - if (!directiveIntrospection.args) { - var directiveIntrospectionStr = (0, _inspect.default)(directiveIntrospection); - throw new Error("Introspection result missing directive args: ".concat(directiveIntrospectionStr, ".")); - } - - if (!directiveIntrospection.locations) { - var _directiveIntrospectionStr = (0, _inspect.default)(directiveIntrospection); - - throw new Error("Introspection result missing directive locations: ".concat(_directiveIntrospectionStr, ".")); - } - - return new _directives.GraphQLDirective({ - name: directiveIntrospection.name, - description: directiveIntrospection.description, - isRepeatable: directiveIntrospection.isRepeatable, - locations: directiveIntrospection.locations.slice(), - args: buildInputValueDefMap(directiveIntrospection.args) - }); - } -} |