Skip to content

Commit c80a6aa

Browse files
authored
fix Issue 117 (#123)
* fix: 枚举值为数字时生成的ts有bug #117
1 parent 33f9eb1 commit c80a6aa

File tree

4 files changed

+10
-3
lines changed

4 files changed

+10
-3
lines changed

.changeset/weak-beds-tap.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'openapi-ts-request': minor
3+
---
4+
5+
解决issue `枚举类型名称为数字时生成的ts有bug` https://github.com/openapi-ui/openapi-ts-request/issues/117

src/generator/serviceGenarator.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,7 +1074,7 @@ export default class ServiceGenerator {
10741074
let enumLabelTypeStr = '';
10751075

10761076
if (numberEnum.includes(schemaObject.type) || isAllNumeric(enumArray)) {
1077-
enumStr = `{${map(enumArray, (value) => `NUMBER_${value}=${Number(value)}`).join(',')}}`;
1077+
enumStr = `{${map(enumArray, (value) => `"NUMBER_${value}"=${Number(value)}`).join(',')}}`;
10781078
} else {
10791079
enumStr = `{${map(enumArray, (value) => `${value}="${value}"`).join(',')}}`;
10801080
}
@@ -1094,7 +1094,7 @@ export default class ServiceGenerator {
10941094
}).join(',')}}`;
10951095
} else {
10961096
if (numberEnum.includes(schemaObject.type) || isAllNumeric(enumArray)) {
1097-
enumLabelTypeStr = `{${map(enumArray, (value) => `NUMBER_${value}:${Number(value)}`).join(',')}}`;
1097+
enumLabelTypeStr = `{${map(enumArray, (value) => `"NUMBER_${value}":${Number(value)}`).join(',')}}`;
10981098
} else {
10991099
enumLabelTypeStr = `{${map(enumArray, (value) => `${value}:"${value}"`).join(',')}}`;
11001100
}

src/generator/util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,5 +481,5 @@ export function resolveRefs(obj: OpenAPIObject, fields: string[]) {
481481
}
482482

483483
export function isAllNumeric(arr) {
484-
return every(arr, (item) => isString(item) && /^[0-9]+$/.test(item));
484+
return every(arr, (item) => isString(item) && /^-?[0-9]+$/.test(item));
485485
}

test/example-files/openapi-number-enum.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@
153153
"Poi2CategoryEnum": {
154154
"type": "string",
155155
"enum": [
156+
"-1",
157+
"-1000",
156158
"010700",
157159
"010800",
158160
"010900",

0 commit comments

Comments
 (0)