Open vitorcamachoo opened 1 month ago
@vitorcamachoo can you provide details where the current behavior of kubb is not as you expected? Ideally with a minimal schema that replicates the issue(s)?
For the following schema:
---
openapi: 3.0.3
components:
schemas:
IssueEventParameters:
type: object
anyOf:
- '$ref': '#/components/schemas/IssueEventParametersAcceptAssignment'
- '$ref': '#/components/schemas/IssueEventParametersAddApprover'
- '$ref': '#/components/schemas/IssueEventParametersAddTeam'
discriminator:
propertyName: eventType
mapping:
accept_assignment: '#/components/schemas/IssueEventParametersAcceptAssignment'
add_approver: '#/components/schemas/IssueEventParametersAddApprover'
add_team: '#/components/schemas/IssueEventParametersAddTeam'
With the current Kubb version, it is being generated the following code:
import { IssueEventParametersAcceptAssignmentSchema } from './issueEventParametersAcceptAssignmentSchema';
import { IssueEventParametersAddApproverSchema } from './issueEventParametersAddApproverSchema';
import { IssueEventParametersAddTeamSchema } from './issueEventParametersAddTeamSchema';
export type IssueEventParametersSchema =
| IssueEventParametersAcceptAssignmentSchema
| IssueEventParametersAddApproverSchema
| IssueEventParametersAddTeamSchema;
file: issueEventParametersAcceptAssignmentSchema
export type IssueEventParametersAcceptAssignmentSchema = {
/**
* @type object
*/
parameters: {
/**
* @type string | undefined, uuid
*/
issueAssignmentId?: string;
};
};
The expectation of this last piece of code should be the following (it is missing the eventType property):
(generated by Orval)
import type { IssueEventParametersAcceptAssignmentSchemaEventType } from './issueEventParametersAcceptAssignmentSchemaEventType';
import type { IssueEventParametersAcceptAssignmentSchemaParameters } from './issueEventParametersAcceptAssignmentSchemaParameters';
export interface IssueEventParametersAcceptAssignmentSchema {
eventType: IssueEventParametersAcceptAssignmentSchemaEventType;
parameters: IssueEventParametersAcceptAssignmentSchemaParameters;
}
What is the problem this feature would solve?
Our API is using the discriminators feature from the open API and Kubb does not support that making a possible migration to this tool impossible. Supporting discriminators would be really useful for the community. https://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/
External documents/projects?
No response
What is the feature you are proposing to solve the problem?
No response
What alternatives have you considered?
No response