@eddeee888/gcg-typescript-resolver-files
Version:
This [GraphQL Code Generator](https://www.the-guild.dev/graphql/codegen) plugin creates resolvers given GraphQL schema.
75 lines • 3.52 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleGraphQLRootObjectTypeField = void 0;
const utils_1 = require("../utils");
const handleGraphQLRootObjectTypeField = ({ fieldFilePath, isFileAlreadyOnFilesystem, resolverName, belongsToRootObject, normalizedResolverName, resolversTypeMeta, moduleName, relativePathFromBaseToModule, }, { result, config: { resolverGeneration, emitLegacyCommonJSImports } }) => {
if ((belongsToRootObject === 'Query' &&
!(0, utils_1.isMatchResolverNamePattern)({
pattern: resolverGeneration.query,
value: normalizedResolverName.withModule,
}) &&
!isFileAlreadyOnFilesystem) ||
(belongsToRootObject === 'Mutation' &&
!(0, utils_1.isMatchResolverNamePattern)({
pattern: resolverGeneration.mutation,
value: normalizedResolverName.withModule,
}) &&
!isFileAlreadyOnFilesystem) ||
(belongsToRootObject === 'Subscription' &&
!(0, utils_1.isMatchResolverNamePattern)({
pattern: resolverGeneration.subscription,
value: normalizedResolverName.withModule,
}) &&
!isFileAlreadyOnFilesystem)) {
const resolverGenerationPattern = belongsToRootObject === 'Query'
? resolverGeneration.query
: belongsToRootObject === 'Mutation'
? resolverGeneration.mutation
: belongsToRootObject === 'Subscription'
? resolverGeneration.subscription
: 'Unknown';
utils_1.logger.debug(`Skipped ${belongsToRootObject} resolver generation: "${normalizedResolverName.withModule}". Pattern: "${resolverGenerationPattern}".`);
return;
}
const suggestion = `/* Implement ${normalizedResolverName.base} resolver logic here */`;
const resolverTypeString = `NonNullable<${resolversTypeMeta.typeString}>`;
let variableStatement = `export const ${resolverName}: ${resolverTypeString} = async (_parent, _arg, _ctx) => { ${suggestion} };`;
if (belongsToRootObject === 'Subscription') {
variableStatement = `export const ${resolverName}: ${resolverTypeString} = {
subscribe: async (_parent, _arg, _ctx) => { ${suggestion} },
}`;
}
const resolverTypeImportDeclaration = (0, utils_1.printImportLine)({
isTypeImport: true,
module: resolversTypeMeta.module,
moduleType: resolversTypeMeta.moduleType,
namedImports: [resolversTypeMeta.typeNamedImport],
emitLegacyCommonJSImports,
});
result.files[fieldFilePath] = {
__filetype: 'rootObjectTypeFieldResolver',
filesystem: {
type: 'virtual',
contentUpdated: false,
},
content: `
${resolverTypeImportDeclaration}
${variableStatement}`,
mainImportIdentifier: resolverName,
meta: {
moduleName,
relativePathFromBaseToModule,
belongsToRootObject,
resolverTypeImportDeclaration,
variableStatement,
resolverType: {
baseImport: resolversTypeMeta.typeNamedImport,
resolver: resolversTypeMeta.typeString,
final: resolverTypeString,
},
normalizedResolverName,
},
};
};
exports.handleGraphQLRootObjectTypeField = handleGraphQLRootObjectTypeField;
//# sourceMappingURL=handleGraphQLRootObjectTypeField.js.map
;