1- import { DeclarationBlock , indent } from '@graphql-codegen/visitor-plugin-common' ;
1+ import { DeclarationBlock , convertNameParts , indent } from '@graphql-codegen/visitor-plugin-common' ;
22import type {
33 EnumTypeDefinitionNode ,
44 FieldDefinitionNode ,
@@ -15,14 +15,14 @@ import {
1515 Kind ,
1616} from 'graphql' ;
1717
18+ import { resolveExternalModuleAndFn } from '@graphql-codegen/plugin-helpers' ;
1819import type { ValidationSchemaPluginConfig } from '../config' ;
1920import { buildApi , formatDirectiveConfig } from '../directive' ;
2021import { BaseSchemaVisitor } from '../schema_visitor' ;
2122import type { Visitor } from '../visitor' ;
2223import {
2324 InterfaceTypeDefinitionBuilder ,
2425 ObjectTypeDefinitionBuilder ,
25- escapeGraphQLCharacters ,
2626 isInput ,
2727 isListType ,
2828 isNamedType ,
@@ -280,12 +280,22 @@ function shapeFields(fields: readonly (FieldDefinitionNode | InputValueDefinitio
280280 defaultValue ?. kind === Kind . INT
281281 || defaultValue ?. kind === Kind . FLOAT
282282 || defaultValue ?. kind === Kind . BOOLEAN
283- ) {
283+ )
284284 fieldSchema = `${ fieldSchema } .default(${ defaultValue . value } )` ;
285- }
286285
287- if ( defaultValue ?. kind === Kind . STRING || defaultValue ?. kind === Kind . ENUM )
288- fieldSchema = `${ fieldSchema } .default("${ escapeGraphQLCharacters ( defaultValue . value ) } ")` ;
286+ if ( defaultValue ?. kind === Kind . STRING || defaultValue ?. kind === Kind . ENUM ) {
287+ if ( config . useEnumTypeAsDefaultValue && defaultValue ?. kind !== Kind . STRING ) {
288+ let value = convertNameParts ( defaultValue . value , resolveExternalModuleAndFn ( 'change-case-all#pascalCase' ) ) ;
289+
290+ if ( config . namingConvention ?. enumValues )
291+ value = convertNameParts ( defaultValue . value , resolveExternalModuleAndFn ( config . namingConvention ?. enumValues ) ) ;
292+
293+ fieldSchema = `${ fieldSchema } .default(${ visitor . convertName ( field . name . value ) } .${ value } )` ;
294+ }
295+ else {
296+ fieldSchema = `${ fieldSchema } .default("${ defaultValue . value } ")` ;
297+ }
298+ }
289299 }
290300
291301 if ( isNonNullType ( field . type ) )
0 commit comments