Skip to content

withObjectType option don't support union type #181

Closed
@anhdd-kuro

Description

@anhdd-kuro

I have gql file like this

type WorkDivision {
  id: ID!
  name: String!
}

type AttendanceNotEnteredOrDayOff {
  id: ID!
  name: String!
  symbol: String!
}

union AttendanceType = WorkDivision | AttendanceNotEnteredOrDayOff

type Attendance {
  date: String!
  type: AttendanceType!
}

current output

export function AttendanceSchema(): z.ZodObject<Properties<Attendance>> {
  return z.object({
    __typename: z.literal('Attendance').optional(),
    date: z.string().min(1),
    type: definedNonNullAnySchema // wrong !
  })
}

expected output

export function AttendanceTypeSchema(): z.ZodUnion<[z.ZodObject<Required<Properties<WorkDivision>>>, z.ZodObject<Required<Properties<AttendanceNotEnteredOrDayOff>>>]> {
  return z.union([WorkDivisionSchema(), AttendanceNotEnteredOrDayOffSchema()])
}

export function AttendanceSchema(): z.ZodObject<Properties<Attendance>> {
  return z.object({
    __typename: z.literal('Attendance').optional(),
    date: z.string().min(1),
    type: AttendanceTypeSchema()
  })
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions