-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreplaced-by-to-description.js
50 lines (43 loc) · 1.34 KB
/
replaced-by-to-description.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
* @copyright Copyright 2019 Kevin Locke <kevin@kevinlocke.name>
* @license MIT
* @module "openapi-transformers/replaced-by-to-description.js"
*/
import OpenApiTransformerBase from 'openapi-transformer-base';
function transformXDeprecated(schema) {
const xDeprecated = schema['x-deprecated'];
if (xDeprecated
&& !Object.hasOwn(xDeprecated, 'description')
&& Object.hasOwn(xDeprecated, 'replaced-by')) {
return {
...schema,
'x-deprecated': {
description: `Use ${xDeprecated['replaced-by']} instead.`,
...xDeprecated,
},
};
}
return schema;
}
/**
* Transformer to convert x-deprecated.replaced-by to x-deprecated.description,
* if not present.
* https://github.com/Azure/autorest/tree/master/Samples/test/deprecated
*
* Since Autorest C# doesn't use replaced-by, but does use description.
*/
export default class ReplacedByToDescriptionTransformer
extends OpenApiTransformerBase {
transformSchema(schema) {
return transformXDeprecated(super.transformSchema(schema));
}
transformParameter(parameter) {
return transformXDeprecated(super.transformParameter(parameter));
}
transformHeader(header) {
return transformXDeprecated(super.transformHeader(header));
}
transformOperation(operation) {
return transformXDeprecated(super.transformOperation(operation));
}
}