@pothos/plugin-add-graphql
Version:
A Pothos plugin for adding existing GraphQL types to a Pothos schema
34 lines (33 loc) • 1.08 kB
JavaScript
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