@@ -3,7 +3,10 @@ import { Tsoa, assertNever, Swagger } from '@tsoa/runtime';
3
3
import * as handlebars from 'handlebars' ;
4
4
5
5
export abstract class SpecGenerator {
6
- constructor ( protected readonly metadata : Tsoa . Metadata , protected readonly config : ExtendedSpecConfig ) { }
6
+ constructor (
7
+ protected readonly metadata : Tsoa . Metadata ,
8
+ protected readonly config : ExtendedSpecConfig ,
9
+ ) { }
7
10
8
11
protected buildAdditionalProperties ( type : Tsoa . Type ) {
9
12
return this . getSwaggerType ( type ) ;
@@ -59,7 +62,7 @@ export abstract class SpecGenerator {
59
62
}
60
63
}
61
64
62
- protected getSwaggerType ( type : Tsoa . Type , title ?: string ) : Swagger . Schema | Swagger . BaseSchema {
65
+ protected getSwaggerType ( type : Tsoa . Type , title ?: string ) : Swagger . BaseSchema {
63
66
if ( type . dataType === 'void' || type . dataType === 'undefined' ) {
64
67
return this . getSwaggerTypeForVoid ( type . dataType ) ;
65
68
} else if ( type . dataType === 'refEnum' || type . dataType === 'refObject' || type . dataType === 'refAlias' ) {
@@ -96,13 +99,13 @@ export abstract class SpecGenerator {
96
99
}
97
100
}
98
101
99
- protected abstract getSwaggerTypeForUnionType ( type : Tsoa . UnionType , title ?: string ) : Swagger . Schema | Swagger . BaseSchema ;
102
+ protected abstract getSwaggerTypeForUnionType ( type : Tsoa . UnionType , title ?: string ) : Swagger . BaseSchema ;
100
103
101
- protected abstract getSwaggerTypeForIntersectionType ( type : Tsoa . IntersectionType , title ?: string ) : Swagger . Schema | Swagger . BaseSchema ;
104
+ protected abstract getSwaggerTypeForIntersectionType ( type : Tsoa . IntersectionType , title ?: string ) : Swagger . BaseSchema ;
102
105
103
- protected abstract buildProperties ( properties : Tsoa . Property [ ] ) : { [ propertyName : string ] : Swagger . Schema | Swagger . Schema3 } ;
106
+ protected abstract buildProperties ( properties : Tsoa . Property [ ] ) : { [ propertyName : string ] : Swagger . Schema2 } | { [ propertyName : string ] : Swagger . Schema3 } ;
104
107
105
- public getSwaggerTypeForObjectLiteral ( objectLiteral : Tsoa . NestedObjectLiteralType , title ?: string ) : Swagger . Schema {
108
+ public getSwaggerTypeForObjectLiteral ( objectLiteral : Tsoa . NestedObjectLiteralType , title ?: string ) : Swagger . BaseSchema {
106
109
const properties = this . buildProperties ( objectLiteral . properties ) ;
107
110
108
111
const additionalProperties = objectLiteral . additionalProperties && this . getSwaggerType ( objectLiteral . additionalProperties ) ;
@@ -146,7 +149,7 @@ export abstract class SpecGenerator {
146
149
}
147
150
} ;
148
151
149
- protected getSwaggerTypeForPrimitiveType ( dataType : Tsoa . PrimitiveTypeLiteral ) : Swagger . Schema {
152
+ protected getSwaggerTypeForPrimitiveType ( dataType : Tsoa . PrimitiveTypeLiteral ) : Swagger . BaseSchema {
150
153
if ( dataType === 'object' ) {
151
154
if ( process . env . NODE_ENV !== 'tsoa_test' ) {
152
155
// eslint-disable-next-line no-console
@@ -162,7 +165,7 @@ export abstract class SpecGenerator {
162
165
}
163
166
}
164
167
165
- const map : Record < Tsoa . PrimitiveTypeLiteral , Swagger . Schema > = {
168
+ const map : Record < Tsoa . PrimitiveTypeLiteral , Swagger . BaseSchema > = {
166
169
any : {
167
170
// While the any type is discouraged, it does explicitly allows anything, so it should always allow additionalProperties
168
171
additionalProperties : true ,
@@ -188,7 +191,7 @@ export abstract class SpecGenerator {
188
191
return map [ dataType ] ;
189
192
}
190
193
191
- protected getSwaggerTypeForArrayType ( arrayType : Tsoa . ArrayType , title ?: string ) : Swagger . Schema {
194
+ protected getSwaggerTypeForArrayType ( arrayType : Tsoa . ArrayType , title ?: string ) : Swagger . BaseSchema {
192
195
return {
193
196
items : this . getSwaggerType ( arrayType . elementType , title ) ,
194
197
type : 'array' ,
0 commit comments