@@ -1059,12 +1059,26 @@ export class SchemaProcessor {
10591059 body : OpenAPIDefinition ;
10601060 responses : OpenAPIDefinition ;
10611061 } {
1062+ // Helper function to strip array notation from type names
1063+ const stripArrayNotation = ( typeName : string | undefined ) : string | undefined => {
1064+ if ( ! typeName ) return typeName ;
1065+ let baseType = typeName ;
1066+ while ( baseType . endsWith ( '[]' ) ) {
1067+ baseType = baseType . slice ( 0 , - 2 ) ;
1068+ }
1069+ return baseType ;
1070+ } ;
1071+
1072+ // Strip array notation for schema lookups
1073+ const baseBodyType = stripArrayNotation ( bodyType ) ;
1074+ const baseResponseType = stripArrayNotation ( responseType ) ;
1075+
10621076 let params = paramsType ? this . openapiDefinitions [ paramsType ] : { } ;
10631077 let pathParams = pathParamsType
10641078 ? this . openapiDefinitions [ pathParamsType ]
10651079 : { } ;
1066- let body = bodyType ? this . openapiDefinitions [ bodyType ] : { } ;
1067- let responses = responseType ? this . openapiDefinitions [ responseType ] : { } ;
1080+ let body = baseBodyType ? this . openapiDefinitions [ baseBodyType ] : { } ;
1081+ let responses = baseResponseType ? this . openapiDefinitions [ baseResponseType ] : { } ;
10681082
10691083 if ( paramsType && ! params ) {
10701084 this . findSchemaDefinition ( paramsType , "params" ) ;
@@ -1076,22 +1090,22 @@ export class SchemaProcessor {
10761090 pathParams = this . openapiDefinitions [ pathParamsType ] || { } ;
10771091 }
10781092
1079- if ( bodyType && ! body ) {
1080- this . findSchemaDefinition ( bodyType , "body" ) ;
1081- body = this . openapiDefinitions [ bodyType ] || { } ;
1093+ if ( baseBodyType && ! body ) {
1094+ this . findSchemaDefinition ( baseBodyType , "body" ) ;
1095+ body = this . openapiDefinitions [ baseBodyType ] || { } ;
10821096 }
10831097
1084- if ( responseType && ! responses ) {
1085- this . findSchemaDefinition ( responseType , "response" ) ;
1086- responses = this . openapiDefinitions [ responseType ] || { } ;
1098+ if ( baseResponseType && ! responses ) {
1099+ this . findSchemaDefinition ( baseResponseType , "response" ) ;
1100+ responses = this . openapiDefinitions [ baseResponseType ] || { } ;
10871101 }
10881102
10891103 if ( this . schemaTypes . includes ( "zod" ) ) {
10901104 const schemasToProcess = [
10911105 paramsType ,
10921106 pathParamsType ,
1093- bodyType ,
1094- responseType ,
1107+ baseBodyType ,
1108+ baseResponseType ,
10951109 ] . filter ( Boolean ) ;
10961110 schemasToProcess . forEach ( ( schemaName ) => {
10971111 if ( ! this . openapiDefinitions [ schemaName ] ) {
0 commit comments