UNPKG

@eddeee888/gcg-typescript-resolver-files

Version:

This [GraphQL Code Generator](https://www.the-guild.dev/graphql/codegen) plugin creates resolvers given GraphQL schema.

62 lines 2.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleGraphQLEnumType = void 0; const utils_1 = require("../utils"); const handleGraphQLEnumType = ({ fieldFilePath, relativePathFromBaseToModule, resolverName, isFileAlreadyOnFilesystem, normalizedResolverName, resolversTypeMeta, moduleName, allowedValues, }, { result, config: { typeMappersMap, resolverGeneration, emitLegacyCommonJSImports }, }) => { const matchedPatternToGenerate = (0, utils_1.isMatchResolverNamePattern)({ pattern: resolverGeneration.enum, value: normalizedResolverName.withModule, }); const mapperDetails = typeMappersMap[normalizedResolverName.base]; if (!matchedPatternToGenerate && !mapperDetails && !isFileAlreadyOnFilesystem) { utils_1.logger.debug(`Skipped Enum resolver generation: "${normalizedResolverName.withModule}". Pattern: "${resolverGeneration.enum}".`); return; } const forcedGenerationWarning = (() => { if (!matchedPatternToGenerate && mapperDetails) { utils_1.logger.debug(`Enum resolver generation was NOT skipped because there is a associated mapper: "${normalizedResolverName.withModule}". "Pattern: ${resolverGeneration.enum}". Mapper: ${mapperDetails.mapper.name}`); return `/* * Note: This enum file is generated because "${mapperDetails.mapper.name}" is declared. This is to ensure runtime safety. * If you want to skip this file generation, remove the mapper or update the pattern in the \`resolverGeneration.object\` config. */\n`; } return ''; })(); const resolverTypeImportDeclaration = (0, utils_1.printImportLine)({ isTypeImport: true, module: resolversTypeMeta.module, moduleType: resolversTypeMeta.moduleType, namedImports: [resolversTypeMeta.typeNamedImport], emitLegacyCommonJSImports, }); const variableStatement = `${forcedGenerationWarning}export const ${resolverName}: ${resolversTypeMeta.typeString} = { ${allowedValues.map((value) => `${value}: '${value}'`).join(',\n')} }`; result.files[fieldFilePath] = { __filetype: 'enumResolver', filesystem: { type: 'virtual', contentUpdated: false, }, content: ` ${resolverTypeImportDeclaration} ${variableStatement}`, mainImportIdentifier: resolverName, meta: { moduleName, relativePathFromBaseToModule, resolverTypeImportDeclaration, variableStatement, resolverType: { baseImport: resolversTypeMeta.typeNamedImport, final: resolversTypeMeta.typeString, }, normalizedResolverName, allowedValues, }, }; }; exports.handleGraphQLEnumType = handleGraphQLEnumType; //# sourceMappingURL=handleGraphQLEnumType.js.map