Open chitalian opened 3 months ago
Similar problem here. The (reduced) code looks like this:
PackageTreePermittedResponseV2: WithRequired<{
permission: "FULL";
} & Omit<components["schemas"]["PackageTreeResponseV2"], "permission"> & ({
packages?: components["schemas"]["PackageTreeResponseV2"][];
}), "id" | "permission" | "packages">;
PackageTreeResponseV2: {
id: string;
permission: string;
} & (components["schemas"]["PackageTreePermittedResponseV2"]);
Errors:
TS2502: PackageTreePermittedResponseV2 is referenced directly or indirectly in its own type annotation.
TS2502: PackageTreeResponseV2 is referenced directly or indirectly in its own type annotation.
"PackageTreePermittedResponseV2": {
"required": [
..........................................................
"id",
"packages",
"permission",
..........................................................
],
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/PackageTreeResponseV2"
},
{
"type": "object",
"properties": {
..........................................................
"packages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PackageTreeResponseV2"
}
},
..........................................................
}
}
]
},
"PackageTreeResponseV2": {
"title": "PackageTreeResponseV2",
"required": ["id", "permission"],
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"permission": {
"type": "string"
}
},
"discriminator": {
"propertyName": "permission",
"mapping": {
"FULL": "#/components/schemas/PackageTreePermittedResponseV2",
..........................................................
}
},
"oneOf": [
{
"$ref": "#/components/schemas/PackageTreePermittedResponseV2"
},
{
"$ref": "#/components/schemas/PackageTreeUnauthorisedResponseV2"
}
]
},
Description
Having a self referential type like...
Causes typescript to be generate like this
Causing this failure...
openapi-typescript
6.7.5
18.17.1
macOS 14.3
Reproduction
Expected result
We can somehow build the typescript to move any self-referential types to it's own type like this?
Checklist
npx @redocly/cli@latest lint
)