UNPKG

iracing-api

Version:

Javascript client for iracing API

59 lines (58 loc) 1.9 kB
import { z } from 'zod'; // Params export const GetSeasonListParamsSchema = z.object({ seasonYear: z.number(), seasonQuarter: z.number(), }); export const GetSeasonRaceGuideParamsSchema = z.object({ from: z.string().optional(), includeEndAfterFrom: z.boolean().optional(), }); export const GetSpectatorSubsessionIdsParamsSchema = z.object({ eventTypes: z.array(z.number()).optional(), }); export const GetSpectatorSubsessionIdsDetailParamsSchema = z.object({ eventTypes: z.array(z.number()).optional(), seasonIds: z.array(z.number()).optional(), }); // Response export const SeasonListEntrySchema = z.object({ seasonId: z.number(), seriesId: z.number(), seasonName: z.string(), seriesName: z.string(), official: z.boolean(), seasonYear: z.number(), seasonQuarter: z.number(), licenseGroup: z.number(), fixedSetup: z.boolean(), driverChanges: z.boolean(), rookieSeason: z.string().optional(), // Added as optional based on example }); export const GetSeasonListResponseSchema = z.object({ seasonQuarter: z.number(), seasons: z.array(SeasonListEntrySchema), seasonYear: z.number(), }); export const SeasonRaceGuideSessionSchema = z.object({ seasonId: z.number(), startTime: z.string().datetime(), superSession: z.boolean(), seriesId: z.number(), raceWeekNum: z.number(), endTime: z.string().datetime(), sessionId: z.number(), entryCount: z.number(), }); export const GetSeasonRaceGuideResponseSchema = z.object({ subscribed: z.boolean(), sessions: z.array(SeasonRaceGuideSessionSchema), blockBeginTime: z.string().datetime(), blockEndTime: z.string().datetime(), success: z.boolean(), }); export const GetSpectatorSubsessionIdsResponseSchema = z.object({ eventTypes: z.array(z.number()), success: z.boolean(), subsessionIds: z.array(z.number()), });