@pothos/plugin-add-graphql
Version:
A Pothos plugin for adding existing GraphQL types to a Pothos schema
50 lines (49 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: Object.getOwnPropertyDescriptor(all, name).get
});
}
_export(exports, {
get addReferencedType () {
return addReferencedType;
},
get addTypeToSchema () {
return addTypeToSchema;
},
get referencedTypes () {
return referencedTypes;
}
});
const _core = require("@pothos/core");
const _graphql = require("graphql");
const referencedTypes = (0, _core.createContextCache)(()=>new Set());
function addTypeToSchema(builder, type) {
if (builder.configStore.hasConfig(type.name)) {
return;
}
if ((0, _graphql.isObjectType)(type)) {
builder.addGraphQLObject(type);
} else if ((0, _graphql.isInterfaceType)(type)) {
builder.addGraphQLInterface(type);
} else if ((0, _graphql.isUnionType)(type)) {
builder.addGraphQLUnion(type);
} else if ((0, _graphql.isEnumType)(type)) {
builder.addGraphQLEnum(type);
} else if ((0, _graphql.isInputObjectType)(type)) {
builder.addGraphQLInput(type);
} else if ((0, _graphql.isScalarType)(type)) {
builder.addScalarType(type.name, type);
}
}
function addReferencedType(builder, type) {
if (referencedTypes(builder).has(type)) {
return;
}
builder.configStore.onPrepare(()=>addTypeToSchema(builder, type));
}
//# sourceMappingURL=utils.js.map