@eddeee888/gcg-typescript-resolver-files
Version:
This [GraphQL Code Generator](https://www.the-guild.dev/graphql/codegen) plugin creates resolvers given GraphQL schema.
47 lines • 2.07 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleGraphQLInterfaceType = void 0;
const utils_1 = require("../utils");
const handleGraphQLInterfaceType = ({ fieldFilePath, isFileAlreadyOnFilesystem, resolverName, normalizedResolverName, resolversTypeMeta, moduleName, relativePathFromBaseToModule, }, { result, config: { resolverGeneration, emitLegacyCommonJSImports } }) => {
if (!(0, utils_1.isMatchResolverNamePattern)({
pattern: resolverGeneration.interface,
value: normalizedResolverName.withModule,
}) &&
!isFileAlreadyOnFilesystem) {
utils_1.logger.debug(`Skipped Interface resolver generation: "${normalizedResolverName.withModule}". Pattern: "${resolverGeneration.interface}".`);
return;
}
const resolverTypeString = resolversTypeMeta.typeString;
const resolverTypeImportDeclaration = (0, utils_1.printImportLine)({
isTypeImport: true,
module: resolversTypeMeta.module,
moduleType: resolversTypeMeta.moduleType,
namedImports: [resolversTypeMeta.typeNamedImport],
emitLegacyCommonJSImports,
});
const variableStatement = `export const ${resolverName}: ${resolverTypeString} = { /* Implement ${resolverName} interface logic here */ };`;
result.files[fieldFilePath] = {
__filetype: 'interfaceResolver',
filesystem: {
type: 'virtual',
contentUpdated: false,
},
content: `
${resolverTypeImportDeclaration}
${variableStatement}`,
mainImportIdentifier: resolverName,
meta: {
moduleName,
relativePathFromBaseToModule,
normalizedResolverName,
resolverTypeImportDeclaration,
variableStatement,
resolverType: {
baseImport: resolversTypeMeta.typeNamedImport,
final: resolverTypeString,
},
},
};
};
exports.handleGraphQLInterfaceType = handleGraphQLInterfaceType;
//# sourceMappingURL=handleGraphQLInterfaceType.js.map
;