UNPKG

@eddeee888/gcg-typescript-resolver-files

Version:

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

41 lines 2.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateAndMergeParsedConfigs = void 0; const utils_1 = require("../utils"); /** * validateAndMergeParsedConfigs is used to make sure all parsed configs do not incorrectly override each other. * Use this to ensure there's only one way of doing something. e.g. * - scalarsOverrides must be used over externalResolvers to override scalars */ const validateAndMergeParsedConfigs = ({ unmanagedNonScalarResolvers, parsedGraphQLSchemaMeta: { userDefinedSchemaTypeMap, pluginsConfig: { scalarsModuleResolvers, unmanagedScalarResolvers, defaultScalarTypesMap, defaultTypeMappers, }, }, }) => { Object.keys(scalarsModuleResolvers).forEach((schemaType) => { var _a; if ( // If the scalar is defined on the filesystem, it means user wants to use their custom definition. // This means we should use it, instead of importing it from scalar module (_a = userDefinedSchemaTypeMap.scalar[schemaType]) === null || _a === void 0 ? void 0 : _a.resolverFile.isOnFilesystem) { delete scalarsModuleResolvers[schemaType]; } }); // By default, codegen doesn't generate types for enums // This is great for the default codegen setup but it's not great for server preset - where we need to be able to import // generated resolver types to fill in content for resolver files without needing to manually set up mappers/enumValues // `schemaEnumTypeMappers` is the schema mappers for enums, which can be overriden by user's provided mapper types const schemaEnumTypeMappers = Object.entries(userDefinedSchemaTypeMap.enum).reduce((result, [enumTypename, { allowedValues }]) => { result[enumTypename] = allowedValues.map((v) => `'${v}'`).join(' | '); return result; }, {}); Object.keys(unmanagedNonScalarResolvers).forEach((schemaType) => { if (userDefinedSchemaTypeMap.scalar[schemaType]) { throw new Error(utils_1.fmt.error(`Scalar "${schemaType}" found in presetConfig.externalResolvers. Use presetConfig.scalarsOverrides to override scalar implementation and type. Remove "${schemaType}" from presetConfig.externalResolvers.`, 'Validation')); } }); return { userDefinedSchemaTypeMap, scalarTypes: Object.assign({}, defaultScalarTypesMap), typeMappers: Object.assign(Object.assign({}, schemaEnumTypeMappers), defaultTypeMappers), unmanagedResolvers: Object.assign(Object.assign(Object.assign({}, unmanagedNonScalarResolvers), scalarsModuleResolvers), unmanagedScalarResolvers), }; }; exports.validateAndMergeParsedConfigs = validateAndMergeParsedConfigs; //# sourceMappingURL=validateAndMergeParsedConfigs.js.map