Skip to content

Commit 02d5f8c

Browse files
committed
Update support for enum schemas
1 parent 90a8c98 commit 02d5f8c

File tree

7 files changed

+19
-5
lines changed

7 files changed

+19
-5
lines changed

src/client/interfaces/Enum.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export interface Enum {
22
name: string;
33
value: string;
4+
enumValue: string;
45
type: string;
56
title?: string | null;
67
description: string | null;

src/openApi/v2/parser/extendEnum.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ export const extendEnum = (enumerators: Enum[], definition: WithEnumExtension):
1717
return enumerators.map((enumerator, index) => ({
1818
name: names?.[index] || enumerator.name,
1919
description: descriptions?.[index] || enumerator.description,
20-
value: values?.[index] || enumerator.value,
20+
value: enumerator.value,
21+
enumValue: values?.[index] || enumerator.value,
2122
title: titles?.[index] || enumerator.title,
2223
type: enumerator.type,
2324
}));

src/openApi/v2/parser/getEnum.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export const getEnum = (values?: (string | number)[]): Enum[] => {
1414
return {
1515
name: `'_${value}'`,
1616
value: String(value),
17+
enumValue: '',
1718
type: 'number',
1819
description: null,
1920
};
@@ -25,6 +26,7 @@ export const getEnum = (values?: (string | number)[]): Enum[] => {
2526
.replace(/([a-z])([A-Z]+)/g, '$1_$2')
2627
.toUpperCase(),
2728
value: `'${value.replace(/'/g, "\\'")}'`,
29+
enumValue: '',
2830
type: 'string',
2931
description: null,
3032
};

src/openApi/v3/parser/extendEnum.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ export const extendEnum = (enumerators: Enum[], definition: WithEnumExtension):
1717
return enumerators.map((enumerator, index) => ({
1818
name: names?.[index] || enumerator.name,
1919
description: descriptions?.[index] || enumerator.description,
20-
value: values?.[index] || enumerator.value,
20+
value: enumerator.value,
21+
enumValue: values?.[index] || enumerator.value,
2122
title: titles?.[index] || enumerator.title,
2223
type: enumerator.type,
2324
}));

src/openApi/v3/parser/getEnum.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export const getEnum = (values?: (string | number)[]): Enum[] => {
1414
return {
1515
name: `'_${value}'`,
1616
value: String(value),
17+
enumValue: '',
1718
type: 'number',
1819
description: null,
1920
};
@@ -25,6 +26,7 @@ export const getEnum = (values?: (string | number)[]): Enum[] => {
2526
.replace(/([a-z])([A-Z]+)/g, '$1_$2')
2627
.toUpperCase(),
2728
value: `'${value.replace(/'/g, "\\'")}'`,
29+
enumValue: '',
2830
type: 'string',
2931
description: null,
3032
};

src/templates/exportSchema.hbs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
{{>header}}
22

33
{{#equals export 'enum'}}
4+
{{#unless @root.useUnionTypes}}
45
import { {{name}} } from '../models/{{{name}}}'
6+
{{/unless}}
57
{{/equals}}
68

79
export const ${{{name}}} = {{>schema}} as const;

src/templates/partials/schemaEnum.hbs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,15 @@
1818
items: [
1919
{{#each enum}}
2020
{
21+
{{#if @root.useUnionTypes}}
22+
value: {{{value}}},
23+
{{else}}
2124
value: {{{../name}}}.{{{name}}},
22-
varname: "{{{name}}}",
23-
title: "{{{title}}}",
24-
description: "{{{description}}}",
25+
{{/if}}
26+
varname: '{{{name}}}',
27+
enumValue: {{{enumValue}}},
28+
title: '{{{title}}}',
29+
description: '{{{description}}}',
2530
},
2631
{{/each}}
2732
],

0 commit comments

Comments
 (0)