UNPKG

@terabits/grapi

Version:

Grapi Schema Generator For GraphQL Server

56 lines (55 loc) 1.84 kB
"use strict"; exports.__esModule = true; exports.JsonObject = exports.Json = void 0; var graphql_1 = require("graphql"); var language_1 = require("graphql/language"); function identity(value) { return value; } function parseLiteral(ast, variables) { switch (ast.kind) { case language_1.Kind.STRING: case language_1.Kind.BOOLEAN: return ast.value; case language_1.Kind.INT: case language_1.Kind.FLOAT: return parseFloat(ast.value); case language_1.Kind.OBJECT: { var value_1 = Object.create(null); ast.fields.forEach(function (field) { value_1[field.name.value] = parseLiteral(field.value, variables); }); return value_1; } case language_1.Kind.LIST: return ast.values.map(function (n) { return parseLiteral(n, variables); }); case language_1.Kind.NULL: return null; case language_1.Kind.VARIABLE: { var name_1 = ast.name.value; return variables ? variables[name_1] : undefined; } default: return undefined; } } var Json = new graphql_1.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 }); exports.Json = Json; var JsonObject = new graphql_1.GraphQLScalarType({ name: 'Json', description: 'The `Json` scalar type represents Json values.', serialize: identity, parseValue: identity, parseLiteral: parseLiteral }); exports.JsonObject = JsonObject;