UNPKG

graphql-composer

Version:
65 lines 2.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TypeParser = void 0; const graphql_1 = require("graphql"); const __1 = require(".."); const definition_1 = require("../definition"); class TypeParser { static parse(type, requiredByDefault = false, arrayRequired = undefined, forceNullable = false, forceRequired = false) { let finalType; if (Array.isArray(type)) { finalType = this.parse(type[0], requiredByDefault, arrayRequired, forceNullable, arrayRequired === undefined ? requiredByDefault : arrayRequired); if (finalType) { finalType = graphql_1.GraphQLList(finalType); } } if (type instanceof __1.GQLAnyType) { finalType = type.built; } if (type instanceof graphql_1.GraphQLScalarType) { finalType = type; } switch (type) { case String: finalType = graphql_1.GraphQLString; break; case Number: finalType = graphql_1.GraphQLFloat; break; case Boolean: finalType = graphql_1.GraphQLBoolean; break; case Date: finalType = __1.DateTime; break; } if ((requiredByDefault && !forceNullable) || forceRequired) { if (type instanceof __1.NullableType) { finalType = this.parse(type.type, requiredByDefault, arrayRequired, true); } else if (type instanceof definition_1.RequiredType) { const t = this.parse(type.type, requiredByDefault, arrayRequired); if (t) { finalType = graphql_1.GraphQLNonNull(t); } } else if (finalType) { finalType = graphql_1.GraphQLNonNull(finalType); } } else { if (type instanceof definition_1.RequiredType) { const t = this.parse(type.type, requiredByDefault, arrayRequired); if (t) { finalType = graphql_1.GraphQLNonNull(t); } } else if (type instanceof __1.NullableType) { finalType = this.parse(type.type, requiredByDefault, arrayRequired, true); } } return finalType; } } exports.TypeParser = TypeParser; //# sourceMappingURL=TypeParser.js.map