Skip to content

Commit 3bd1f9b

Browse files
Merge pull request #124 from openapi-ui/main
fix: fix generate number type enum error #117
2 parents 4d1395e + 5bff40b commit 3bd1f9b

File tree

5 files changed

+24
-17
lines changed

5 files changed

+24
-17
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': patch
3+
---
4+
5+
fix: fix generate number type enum error #117

pnpm-lock.yaml

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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)