UNPKG

graphql-compose

Version:

GraphQL schema builder from different data sources with middleware extensions.

67 lines (51 loc) 2.11 kB
'use strict'; var _create = require('babel-runtime/core-js/object/create'); var _create2 = _interopRequireDefault(_create); var _iterator = require('babel-runtime/core-js/symbol/iterator'); var _iterator2 = _interopRequireDefault(_iterator); var _symbol = require('babel-runtime/core-js/symbol'); var _symbol2 = _interopRequireDefault(_symbol); Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; // copied from https://github.com/taion/graphql-type-json function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _graphql = require('graphql'); var _language = require('graphql/language'); function identity(value) { return value; } function parseLiteral(ast) { switch (ast.kind) { case _language.Kind.STRING: case _language.Kind.BOOLEAN: return ast.value; case _language.Kind.INT: case _language.Kind.FLOAT: return parseFloat(ast.value); case _language.Kind.OBJECT: { var _ret = function () { var value = (0, _create2.default)(null); ast.fields.forEach(function (field) { value[field.name.value] = parseLiteral(field.value); }); return { v: value }; }(); if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v; } case _language.Kind.LIST: return ast.values.map(parseLiteral); default: return null; } } exports.default = new _graphql.GraphQLScalarType({ name: 'JSON', description: 'The `JSON` scalar type represents JSON values as specified by ' + '[ECMA-404](http://www.ecma-international.org/' + 'publications/files/ECMA-ST/ECMA-404.pdf).', serialize: identity, parseValue: identity, parseLiteral: parseLiteral });