acacode / acacode/swagger-typescript-api
Omit readonly properties from PATCH requestContent
- Lingua principale
- TypeScript
- Stelle
- 4.1k
- Fork
- 436
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
If a schema is referenced as the requestContent to an API, the generated RequestBody should omit readonly properties.
Given a user:
```ts
export interface User {
readonly id: number
name: string
readonly email: string
}
```
When this type is referenced to be the input to a PATCH request, the input argument should omit readonly properties.
It should be possible to do some Typescript magic to strip readonly properties, like mentioned in https://stackoverflow.com/a/49579497/2240706.
```ts
type IfEquals =
(() => T extends X ? 1 : 2) extends
(() => T extends Y ? 1 : 2) ? A : B;
type WritableKeys = {
[P in keyof T]-?: IfEquals<{ [Q in P]: T[P] }, { -readonly [Q in P]: T[P] }, P>
}[keyof T];
type ReadonlyKeys = {
[P in keyof T]-?: IfEquals<{ [Q in P]: T[P] }, { -readonly [Q in P]: T[P] }, never, P>
}[keyof T];
type OmitReadonly = Pick>;
```
It would then be a case of updating the generated code to declare the argument as `OmitReadonly`
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.