UNPKG

graphql

Version:

A Query Language and Runtime which can target any service.

32 lines (27 loc) 899 B
/** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * */ import { Kind } from '../language/kinds'; import { GraphQLList, GraphQLNonNull } from '../type/definition'; export function typeFromAST(schema, typeNode) { /* eslint-enable no-redeclare */ var innerType; if (typeNode.kind === Kind.LIST_TYPE) { innerType = typeFromAST(schema, typeNode.type); return innerType && GraphQLList(innerType); } if (typeNode.kind === Kind.NON_NULL_TYPE) { innerType = typeFromAST(schema, typeNode.type); return innerType && GraphQLNonNull(innerType); } if (typeNode.kind === Kind.NAMED_TYPE) { return schema.getType(typeNode.name.value); } /* istanbul ignore next */ throw new Error("Unexpected type kind: ".concat(typeNode.kind, ".")); }