Skip to content

oneof enum generates incorrect code #2062

Open
hey-api/openapi-ts
#46
@v-morlock

Description

@v-morlock

Hi!

this model

      "VendingItemState": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Pending"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Picked"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Placed"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "content",
              "type"
            ],
            "properties": {
              "content": {
                "type": "string",
                "format": "date-time"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Dispensed"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "content",
              "type"
            ],
            "properties": {
              "content": {
                "type": "array",
                "items": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string"
                  }
                ],
                "maxItems": 2,
                "minItems": 2
              },
              "type": {
                "type": "string",
                "enum": [
                  "Error"
                ]
              }
            }
          }
        ]
      },

generates the following code:

export type VendingItemState = ({
    type: VendingItemState.type;
} | {
    content: string;
    type: VendingItemState.type;
} | {
    content: Array<any>;
    type: VendingItemState.type;
});
export namespace VendingItemState {
    export enum type {
        PENDING = 'Pending',
    }
}

which is missing most of the options for "type"...

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions