graphql
Version:
A Query Language and Runtime which can target any service.
45 lines (34 loc) • 1.46 kB
JavaScript
/* @flow */
/**
* Copyright (c) 2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
;
var _Object$defineProperty = require('babel-runtime/core-js/object/define-property')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
_Object$defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = typeFromAST;
var _invariant = require('./invariant');
var _invariant2 = _interopRequireDefault(_invariant);
var _languageKinds = require('../language/kinds');
var _typeDefinition = require('../type/definition');
function typeFromAST(schema, inputTypeAST) {
var innerType;
if (inputTypeAST.kind === _languageKinds.LIST_TYPE) {
innerType = typeFromAST(schema, inputTypeAST.type);
return innerType && new _typeDefinition.GraphQLList(innerType);
}
if (inputTypeAST.kind === _languageKinds.NON_NULL_TYPE) {
innerType = typeFromAST(schema, inputTypeAST.type);
return innerType && new _typeDefinition.GraphQLNonNull(innerType);
}
(0, _invariant2['default'])(inputTypeAST.kind === _languageKinds.NAME, 'Must be a type name.');
return schema.getType(inputTypeAST.value);
}
module.exports = exports['default'];