acacode / acacode/swagger-typescript-api

Non generic syntax for generating types with discriminators

Abierto
#677 0 comentarios 1 reacción 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

I am generating zod schemas based on types generated by swagger-typescript-api. The schema generation doesn't work well with generics so I was wondering if it would be possible to have an alternative way of generating types with discriminators?

Today, this is the syntax it seems:
```
export type Value = BaseValue &
(
| BaseValueTypeMapping<"Type1", Value1>
| BaseValueTypeMapping<"Type2", Value2>
| BaseValueTypeMapping<"Type3", Value3>;

export type Value1 = BaseValue;

export type Value2 = BaseValue ;

export type Value3 = BaseValue ;

interface BaseValue {
$type: string;
value: number;
}

type BaseValueTypeMapping = {
$type: Key;
} & Type;
```

It would be nice if it was possible to just generate the types with discriminators like so:

```
export type Value = BaseValue &
(
| Value1
| Value2
| Value3 ;

export type Value1 = BaseValue & {
$type: "Type1"
};

export type Value2 = BaseValue & {
$type: "Type2"
};

export type Value3 = BaseValue & {
$type: "Type3"
};

interface BaseValue {
$type: string;
value: number;
}
```

Is this possible?

Thanks

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.