@eddeee888/gcg-typescript-resolver-files
Version:
This [GraphQL Code Generator](https://www.the-guild.dev/graphql/codegen) plugin creates resolvers given GraphQL schema.
54 lines • 4.11 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateResolverFiles = void 0;
const addResolverMainFiles_1 = require("./addResolverMainFiles");
const postProcessFiles_1 = require("./postProcessFiles");
const handleGraphQLRootObjectTypeField_1 = require("./handleGraphQLRootObjectTypeField");
const handleGraphQLObjectType_1 = require("./handleGraphQLObjectType");
const handleGraphQLUnionType_1 = require("./handleGraphQLUnionType");
const handleGraphQLScalarType_1 = require("./handleGraphQLScalarType");
const handleGraphQLInterfaceType_1 = require("./handleGraphQLInterfaceType");
const handleGraphQLEnumType_1 = require("./handleGraphQLEnumType");
const visitNamedType_1 = require("./visitNamedType");
const generateResolverFiles = (ctx) => {
// Query
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.query).forEach((details) => {
(0, visitNamedType_1.visitNamedType)(Object.assign(Object.assign({}, details), { belongsToRootObject: 'Query', visitor: handleGraphQLRootObjectTypeField_1.handleGraphQLRootObjectTypeField }), ctx);
});
// Mutation
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.mutation).forEach((details) => {
(0, visitNamedType_1.visitNamedType)(Object.assign(Object.assign({}, details), { belongsToRootObject: 'Mutation', visitor: handleGraphQLRootObjectTypeField_1.handleGraphQLRootObjectTypeField }), ctx);
});
// Subscription
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.subscription).forEach((details) => {
(0, visitNamedType_1.visitNamedType)(Object.assign(Object.assign({}, details), { belongsToRootObject: 'Subscription', visitor: handleGraphQLRootObjectTypeField_1.handleGraphQLRootObjectTypeField }), ctx);
});
// Object
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.object).forEach((objectsByModules) => {
Object.values(objectsByModules).forEach((details) => {
(0, visitNamedType_1.visitNamedType)(Object.assign(Object.assign({}, details), { belongsToRootObject: null, visitor: (baseParams, prev_ctx) => (0, handleGraphQLObjectType_1.handleGraphQLObjectType)(Object.assign(Object.assign({}, baseParams), { fieldsToPick: details.fieldsToPick }), prev_ctx) }), ctx);
});
});
// Scalar
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.scalar).forEach((details) => {
(0, visitNamedType_1.visitNamedType)(Object.assign(Object.assign({}, details), { belongsToRootObject: null, visitor: handleGraphQLScalarType_1.handleGraphQLScalarType }), ctx);
});
// Interface
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.interface).forEach((details) => {
(0, visitNamedType_1.visitNamedType)(Object.assign(Object.assign({}, details), { belongsToRootObject: null, visitor: handleGraphQLInterfaceType_1.handleGraphQLInterfaceType }), ctx);
});
// Union
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.union).forEach((details) => {
(0, visitNamedType_1.visitNamedType)(Object.assign(Object.assign({}, details), { belongsToRootObject: null, visitor: handleGraphQLUnionType_1.handleGraphQLUnionType }), ctx);
});
// Enum
Object.values(ctx.config.parsedGraphQLSchemaMeta.userDefinedSchemaTypeMap.enum).forEach((details) => {
(0, visitNamedType_1.visitNamedType)(Object.assign(Object.assign({}, details), { belongsToRootObject: null, visitor: (baseParams, prev_ctx) => (0, handleGraphQLEnumType_1.handleGraphQLEnumType)(Object.assign(Object.assign({}, baseParams), { allowedValues: details.allowedValues }), prev_ctx) }), ctx);
});
// Post process generated files (could be existing files or files to be generated)
(0, postProcessFiles_1.postProcessFiles)(ctx);
// Put all resolvers into barrel file/s (or main file/s)
(0, addResolverMainFiles_1.addResolverMainFiles)(ctx);
};
exports.generateResolverFiles = generateResolverFiles;
//# sourceMappingURL=generateResolverFiles.js.map
;