UNPKG

graphql-2-json-schema

Version:
56 lines (55 loc) 3.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.filterDefinitionsTypes = exports.isIntrospectionDefaultScalarType = exports.isIntrospectionUnionType = exports.isIntrospectionEnumType = exports.isIntrospectionInterfaceType = exports.isIntrospectionInputObjectType = exports.isIntrospectionObjectType = exports.isIntrospectionScalarType = exports.isNonNullIntrospectionType = exports.isIntrospectionListTypeRef = exports.isIntrospectionInputValue = exports.isIntrospectionField = exports.SUPPORTED_KINDS = exports.SUPPORTED_SCALARS = exports.ID_TYPE_MAPPING_OPTION_DEFAULT = void 0; const graphql_1 = require("graphql"); const lodash_1 = require("lodash"); var typesMapping_1 = require("./typesMapping"); Object.defineProperty(exports, "ID_TYPE_MAPPING_OPTION_DEFAULT", { enumerable: true, get: function () { return typesMapping_1.ID_TYPE_MAPPING_OPTION_DEFAULT; } }); exports.SUPPORTED_SCALARS = Object.freeze([ 'Boolean', 'String', 'Int', 'Float', 'ID', ]); exports.SUPPORTED_KINDS = Object.freeze([ graphql_1.TypeKind.SCALAR, graphql_1.TypeKind.OBJECT, graphql_1.TypeKind.INPUT_OBJECT, graphql_1.TypeKind.INTERFACE, graphql_1.TypeKind.ENUM, graphql_1.TypeKind.UNION, ]); const isIntrospectionField = (type) => lodash_1.has(type, 'args'); exports.isIntrospectionField = isIntrospectionField; const isIntrospectionInputValue = (type) => lodash_1.has(type, 'defaultValue'); exports.isIntrospectionInputValue = isIntrospectionInputValue; const isIntrospectionListTypeRef = (type) => type.kind === graphql_1.TypeKind.LIST; exports.isIntrospectionListTypeRef = isIntrospectionListTypeRef; const isNonNullIntrospectionType = (type) => type.kind === graphql_1.TypeKind.NON_NULL; exports.isNonNullIntrospectionType = isNonNullIntrospectionType; const isIntrospectionScalarType = (type) => type.kind === graphql_1.TypeKind.SCALAR; exports.isIntrospectionScalarType = isIntrospectionScalarType; const isIntrospectionObjectType = (type) => type.kind === graphql_1.TypeKind.OBJECT; exports.isIntrospectionObjectType = isIntrospectionObjectType; const isIntrospectionInputObjectType = (type) => type.kind === graphql_1.TypeKind.INPUT_OBJECT; exports.isIntrospectionInputObjectType = isIntrospectionInputObjectType; const isIntrospectionInterfaceType = (type) => type.kind === graphql_1.TypeKind.INTERFACE; exports.isIntrospectionInterfaceType = isIntrospectionInterfaceType; const isIntrospectionEnumType = (type) => type.kind === graphql_1.TypeKind.ENUM; exports.isIntrospectionEnumType = isIntrospectionEnumType; const isIntrospectionUnionType = (type) => type.kind === graphql_1.TypeKind.UNION; exports.isIntrospectionUnionType = isIntrospectionUnionType; const isIntrospectionDefaultScalarType = (type) => type.kind === graphql_1.TypeKind.SCALAR && lodash_1.includes(exports.SUPPORTED_SCALARS, type.name); exports.isIntrospectionDefaultScalarType = isIntrospectionDefaultScalarType; const filterDefinitionsTypes = (types, opts) => { const ignoreInternals = opts && opts.ignoreInternals; return lodash_1.filter(types, (type) => ((exports.isIntrospectionScalarType(type) && !!type.name) || (exports.isIntrospectionObjectType(type) && !!type.fields) || (exports.isIntrospectionInputObjectType(type) && !!type.inputFields) || (exports.isIntrospectionInterfaceType(type) && !!type.fields) || (exports.isIntrospectionEnumType(type) && !!type.enumValues) || (exports.isIntrospectionUnionType(type) && !!type.possibleTypes)) && (!ignoreInternals || (ignoreInternals && !lodash_1.startsWith(type.name, '__')))); }; exports.filterDefinitionsTypes = filterDefinitionsTypes;