acacode / acacode/swagger-typescript-api

Enum with exactly opposite negative and positive integer values results in duplicate enum entries

Abierto
#474 2 comentarios 4 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
TypeScript
Estrellas
4.1k
Forks
436
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

When schema contains enums with integer values, their member names are generated as `Value${absoluteValueOfActualValue}`, which causes `Value${absoluteValueOfActualValue}` == `Value${actualValue}`, so when enums have negative and positive values of the same absolute value, they are generated with identical names.

This swagger.json entry:
```
"AddressFamily": {
"enum": [
0,
1,
2,
3,
4,
<...>
29,
65536,
65537,
-1,
],
"type": "integer",
"format": "int32"
},
```

results in this incorrect typescript enum, since `Value1` is duplicate enum member name:

```
export enum AddressFamily {
Value0 = 0,
Value1 = 1,
Value2 = 2,
Value3 = 3,
Value4 = 4,
<...>
Value29 = 29,
Value65536 = 65536,
Value65537 = 65537,
Value1 = -1,
}
```

It broke after release of v12, as previously these were generated as `type` and worked fine:
```
export type AddressFamily =
| 0
| 1
| 2
| 3
| 4
<...>
| 29
| 65536
| 65537
| -1;
```

latest tested: v12.0.2

Thanks and let me know if you need any extra info

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.