@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
JavaScript
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
;