docs-util: fix clean script removing Auth tags (#8911)
* docs-util: fix clean script removing Auth tags * fix removal of response types other than json
This commit is contained in:
@@ -76,7 +76,11 @@ class SchemaFactory {
|
||||
let schema = Object.assign({}, schemasFactory[key])
|
||||
|
||||
if (additionalData) {
|
||||
schema = Object.assign(schema, additionalData)
|
||||
schema = Object.assign(schema, {
|
||||
...additionalData,
|
||||
// keep the description
|
||||
description: schema.description || additionalData.description
|
||||
})
|
||||
}
|
||||
|
||||
return schema
|
||||
|
||||
@@ -506,8 +506,11 @@ class OasKindGenerator extends FunctionKindGenerator {
|
||||
}
|
||||
updatedResponseSchema = newResponseSchema
|
||||
} else if (oas.responses && !newResponseSchema) {
|
||||
// remove response schema by only keeping the default responses
|
||||
oas.responses = DEFAULT_OAS_RESPONSES
|
||||
// check if it has a success response of a type other than JSON
|
||||
if (!this.hasResponseType(node, oas)) {
|
||||
// remove response schema by only keeping the default responses
|
||||
oas.responses = DEFAULT_OAS_RESPONSES
|
||||
}
|
||||
} else {
|
||||
// check if response status should be changed
|
||||
const oldResponseStatus = Object.keys(oas.responses!).find(
|
||||
@@ -2070,6 +2073,24 @@ class OasKindGenerator extends FunctionKindGenerator {
|
||||
)
|
||||
}
|
||||
|
||||
hasResponseType(node: FunctionNode, oas: OpenApiOperation): boolean {
|
||||
const oldResponseStatus = Object.keys(oas.responses!).find(
|
||||
(status) => !Object.keys(DEFAULT_OAS_RESPONSES).includes(status)
|
||||
)
|
||||
if (!oldResponseStatus) {
|
||||
return false
|
||||
}
|
||||
|
||||
const responseContent = (oas.responses![oldResponseStatus] as OpenAPIV3.ResponseObject).content
|
||||
if (!responseContent) {
|
||||
return false
|
||||
}
|
||||
|
||||
const fnText = node.getText()
|
||||
|
||||
return Object.keys(responseContent).some((responseType) => fnText.includes(responseType))
|
||||
}
|
||||
|
||||
private removeStringRegExpTypeOverlaps(types: ts.Type[]): ts.Type[] {
|
||||
return types.filter((itemType) => {
|
||||
// remove overlapping string / regexp types
|
||||
|
||||
Reference in New Issue
Block a user