@@ -123,7 +123,8 @@ const generateInputObjectFieldTypeYupSchema = (
123123 }
124124 if ( isNonNullType ( type ) ) {
125125 const gen = generateInputObjectFieldTypeYupSchema ( config , tsVisitor , schema , type . type , type ) ;
126- return maybeLazy ( type . type , `${ gen } .defined()` ) ;
126+ const nonNullGen = maybeNonEmptyString ( config , tsVisitor , gen , type . type ) ;
127+ return maybeLazy ( type . type , nonNullGen ) ;
127128 }
128129 if ( isNamedType ( type ) ) {
129130 return generateNameNodeYupSchema ( config , tsVisitor , schema , type . name ) ;
@@ -162,6 +163,23 @@ const maybeLazy = (type: TypeNode, schema: string): string => {
162163 return schema ;
163164} ;
164165
166+ const maybeNonEmptyString = (
167+ config : ValidationSchemaPluginConfig ,
168+ tsVisitor : TsVisitor ,
169+ schema : string ,
170+ childType : TypeNode
171+ ) : string => {
172+ if ( config . notAllowEmptyString === true && isNamedType ( childType ) ) {
173+ const maybeScalarName = childType . name . value ;
174+ const tsType = tsVisitor . scalars [ maybeScalarName ] ;
175+ if ( tsType === 'string' ) {
176+ return `${ schema } .required()` ;
177+ }
178+ }
179+ // fallback
180+ return `${ schema } .defined()` ;
181+ } ;
182+
165183const yup4Scalar = ( tsVisitor : TsVisitor , scalarName : string ) : string => {
166184 const tsType = tsVisitor . scalars [ scalarName ] ;
167185 switch ( tsType ) {
0 commit comments