-
Notifications
You must be signed in to change notification settings - Fork 126
Open
Description
Im using https://activitybff.dev.alineadigital.dk/swagger/v1/swagger.json
pnpx openapi-zod-client 'https://activitybff.dev.alineadigital.dk/swagger/v1/swagger.json' -o './src/schemas/activitybff.ts' --base-url https://activitybff.dev.alineadigital.dk --export-schemas
It creates
const AccordionItemDTO: z.ZodType<AccordionItemDTO> = z.lazy(() =>
z.object({
heading: z.string(),
sections: z.array(
z.union([
AudioAssetSectionDTO,
ContentSectionDTO,
DocumentSectionDTO,
GeogebraAssetSectionDTO,
HeadlineSectionDTO,
ImageAssetSectionDTO,
LinkSectionDTO,
QuoteSectionDTO,
SlideshowSectionDTO,
TableAssetSectionDTO,
VideoAssetSectionDTO,
AssignmentSectionDTO,
BoxSectionDTO,
AccordionSectionDTO,
])
),
defaultOpen: z.boolean(),
})
);
the type:
type AccordionItemDTO = {
heading: string;
sections: Array<
| 'AudioAssetSectionDTO'
| 'ContentSectionDTO'
| 'DocumentSectionDTO'
| 'GeogebraAssetSectionDTO'
| 'HeadlineSectionDTO'
| 'ImageAssetSectionDTO'
| 'LinkSectionDTO'
| 'QuoteSectionDTO'
| 'SlideshowSectionDTO'
| 'TableAssetSectionDTO'
| 'VideoAssetSectionDTO'
| 'AssignmentSectionDTO'
| 'BoxSectionDTO'
| 'AccordionSectionDTO'
>;
defaultOpen: boolean;
};
How am i supposed to use that? The two dont match and its using z.lazy that means it thinks it can be undefined which it cant.
Typescript thinks sections are array of strings with specific names. That is wrong. Its array of different objects.
Is there a trick to get it to be accurate?
dror-trailtkrotoff
Metadata
Metadata
Assignees
Labels
No labels