@@ -876,22 +876,30 @@ class Generator {
876876 if ( ! shouldOverwriteFile ) return ;
877877
878878 if ( this . templateConfig . conditionalFiles ?. [ relativeSourceFile ] ) {
879- const server = this . templateParams . server && asyncapiDocument . servers ( ) . get ( this . templateParams . server ) ;
880- const source = jmespath . search ( {
881- ...asyncapiDocument . json ( ) ,
882- ...{
883- server : server ? server . json ( ) : undefined ,
884- } ,
885- } , this . templateConfig . conditionalFiles [ relativeSourceFile ] . subject ) ;
886-
887- if ( ! source ) return log . debug ( logMessage . relativeSourceFileNotGenerated ( relativeSourceFile , this . templateConfig . conditionalFiles [ relativeSourceFile ] . subject ) ) ;
888-
889- if ( source ) {
890- const validate = this . templateConfig . conditionalFiles [ relativeSourceFile ] . validate ;
891- const valid = validate ( source ) ;
892- if ( ! valid ) return log . debug ( logMessage . conditionalFilesMatched ( relativeSourceFile ) ) ;
879+ const parameter = this . templateConfig . conditionalFiles [ relativeSourceFile ] . subject ;
880+ const value = await this . getParameterValue ( asyncapiDocument , parameter )
881+ if ( value !== undefined ) {
882+ const validation = this . templateConfig . conditionalFiles [ relativeSourceFile ] . validation ;
883+ // Handle "const"
884+ if ( validation ?. const !== undefined ) {
885+ const isValid = value === validation . const ;
886+ console . log ( isValid )
887+ if ( ! isValid ) {
888+ return log . debug ( logMessage . conditionalFilesMatched ( relativeSourceFile ) ) ;
889+ }
890+ }
891+
892+ // Handle "not"
893+ if ( validation ?. not !== undefined ) {
894+ const isNotValid = value === validation . not ;
895+ if ( isNotValid ) {
896+ return log . debug ( logMessage . conditionalFilesMatched ( relativeSourceFile ) ) ;
897+ }
898+ }
899+
900+ // You can keep adding more types like "enum", "pattern", etc.
901+ }
893902 }
894- }
895903
896904 if ( this . isNonRenderableFile ( relativeSourceFile ) ) return await copyFile ( sourceFile , targetFile ) ;
897905 await this . renderAndWriteToFile ( asyncapiDocument , sourceFile , targetFile ) ;
0 commit comments