UNPKG

@pothos/plugin-add-graphql

Version:

A Pothos plugin for adding existing GraphQL types to a Pothos schema

34 lines (33 loc) 1.08 kB
import { createContextCache } from '@pothos/core'; import { isEnumType, isInputObjectType, isInterfaceType, isObjectType, isScalarType, isUnionType } from 'graphql'; export const referencedTypes = createContextCache(() => new Set()); export function addTypeToSchema(builder, type) { if (builder.configStore.hasConfig(type.name)) { return; } if (isObjectType(type)) { builder.addGraphQLObject(type); } else if (isInterfaceType(type)) { builder.addGraphQLInterface(type); } else if (isUnionType(type)) { builder.addGraphQLUnion(type); } else if (isEnumType(type)) { builder.addGraphQLEnum(type); } else if (isInputObjectType(type)) { builder.addGraphQLInput(type); } else if (isScalarType(type)) { builder.addScalarType(type.name, type); } } export function addReferencedType(builder, type) { if (referencedTypes(builder).has(type)) { return; } builder.configStore.onPrepare(() => addTypeToSchema(builder, type)); } //# sourceMappingURL=utils.js.map