Skip to content

Commit 2eb49a2

Browse files
committed
Add support to generate varnames, titles, and descriptions for enums
1 parent a22b40d commit 2eb49a2

File tree

4 files changed

+9
-1
lines changed

4 files changed

+9
-1
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
export interface WithEnumExtension {
2+
'x-enum-values'?: string[];
23
'x-enum-varnames'?: string[];
4+
'x-enum-titles'?: string[];
35
'x-enum-descriptions'?: string[];
46
}

src/openApi/v2/parser/extendEnum.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,16 @@ import type { WithEnumExtension } from '../interfaces/Extensions/WithEnumExtensi
99
* @param definition
1010
*/
1111
export const extendEnum = (enumerators: Enum[], definition: WithEnumExtension): Enum[] => {
12+
const values = definition['x-enum-values'];
1213
const names = definition['x-enum-varnames']?.filter(isString);
14+
const titles = definition['x-enum-titles']?.filter(isString);
1315
const descriptions = definition['x-enum-descriptions']?.filter(isString);
1416

1517
return enumerators.map((enumerator, index) => ({
1618
name: names?.[index] || enumerator.name,
1719
description: descriptions?.[index] || enumerator.description,
18-
value: enumerator.value,
20+
value: values?.[index] || enumerator.value,
21+
title: titles?.[index] || enumerator.title,
1922
type: enumerator.type,
2023
}));
2124
};

src/openApi/v2/parser/getModel.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export const getModel = (
2222
template: null,
2323
link: null,
2424
description: definition.description || null,
25+
title: definition.title,
2526
isDefinition,
2627
isReadOnly: definition.readOnly === true,
2728
isNullable: definition['x-nullable'] === true,

src/openApi/v2/parser/getModelProperties.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export const getModelProperties = (openApi: OpenApi, definition: OpenApiSchema,
2525
template: model.template,
2626
link: null,
2727
description: property.description || null,
28+
title: property.title,
2829
isDefinition: false,
2930
isReadOnly: property.readOnly === true,
3031
isRequired: propertyRequired,
@@ -58,6 +59,7 @@ export const getModelProperties = (openApi: OpenApi, definition: OpenApiSchema,
5859
template: model.template,
5960
link: model.link,
6061
description: property.description || null,
62+
title: property.title,
6163
isDefinition: false,
6264
isReadOnly: property.readOnly === true,
6365
isRequired: propertyRequired,

0 commit comments

Comments
 (0)