UNPKG

openf1-client

Version:

Library for querying data from the OpenF1 API

178 lines (177 loc) 6.26 kB
import type { CarData, Driver, InputQueryParams, Interval, Lap, Location, Meeting, Pit, Position, RaceControl, Session, SessionResult, StartingGrid, Stint, TeamRadio, Weather } from './types'; export declare class OpenF1Client<C extends boolean = false> { private readonly baseURL; private readonly camelize; private readonly debug; constructor(options?: { camelize?: C; debug?: boolean; }); private get; getCarData(params: InputQueryParams<CarData>): Promise<C extends true ? { brake: number; date: string; driverNumber: number; drs: number; meetingKey: number | "latest"; nGear: number; rpm: number; sessionKey: number | "latest"; speed: number; throttle: number; }[] : CarData[]>; getDrivers(params: InputQueryParams<Driver>): Promise<C extends true ? { broadcastName: string; countryCode: string; driverNumber: number; firstName: string; fullName: string; headshotUrl: string; lastName: string; meetingKey: number | "latest"; nameAcronym: string; sessionKey: number | "latest"; teamColour: string; teamName: string; }[] : Driver[]>; getIntervals(params: InputQueryParams<Interval>): Promise<C extends true ? { date: string; driverNumber: number; gapToLeader: string | number | null; interval: string | number | null; meetingKey: number | "latest"; sessionKey: number | "latest"; }[] : Interval[]>; getLaps(params: InputQueryParams<Lap>): Promise<C extends true ? { dateStart: string; driverNumber: number; durationSector1: number; durationSector2: number; durationSector3: number; i1Speed: number; i2Speed: number; isPutOutLap: boolean; lapDuration: number; lapNumber: number; meetingKey: number | "latest"; segmentsSector1: number[]; segmentsSector2: number[]; segmentsSector3: number[]; sessionKey: number | "latest"; stSpeed: number; }[] : Lap[]>; getLocation(params: InputQueryParams<Location>): Promise<C extends true ? { date: string; driverNumber: number; meetingKey: number | "latest"; sessionKey: number | "latest"; x: number; y: number; z: number; }[] : Location[]>; getMeetings(params: InputQueryParams<Meeting>): Promise<C extends true ? { circuitKey: number; circuitShortName: string; countryCode: string; countryKey: number; countryName: string; dateStart: string; gmtOffset: number; location: string; meetingKey: number | "latest"; meetingName: string; meetingOfficialName: string; year: number; }[] : Meeting[]>; getPit(params: InputQueryParams<Pit>): Promise<C extends true ? { date: string; driverNumber: number; lapNumber: number; meetingKey: number | "latest"; pitDuration: number; sessionKey: number | "latest"; }[] : Pit[]>; getPosition(params: InputQueryParams<Position>): Promise<C extends true ? { date: string; driverNumber: number; meetingKey: number | "latest"; position: number; sessionKey: number | "latest"; }[] : Position[]>; getRaceControl(params: InputQueryParams<RaceControl>): Promise<C extends true ? { category: "CarEvent" | "Drs" | "Flag" | "SafteyCar"; date: string; driverNumber: number; flag: "GREEN" | "YELLOW" | "DOUBLE YELLOW" | "CHEQUERED"; lapNumber: number; meetingKey: number | "latest"; message: string; scope: "Track" | "Driver" | "Sector"; sector: number | null; sessionKey: number | "latest"; }[] : RaceControl[]>; getSessions(params: InputQueryParams<Session>): Promise<C extends true ? { circuitKey: number; circuitShortName: string; countryCode: string; countryKey: number; countryName: string; dateEnd: string; dateStart: string; gmtOffset: string; location: string; meetingKey: number | "latest"; sessionKey: number | "latest"; sessionName: "Practice 1" | "Qualifying" | "Race"; sessionType: "Qualifying" | "Race" | "Practice"; year: number; }[] : Session[]>; getSessionResults(params: InputQueryParams<SessionResult>): Promise<C extends true ? { dnf: boolean; dns: boolean; dsq: boolean; driverNumber: number; duration: number | (number | null)[] | null; gapToLeader: string | number | (number | null)[] | null; numberOfLaps: number; meetingKey: number; position: number; sessionKey: number; }[] : SessionResult[]>; getStartingGrid(params: InputQueryParams<StartingGrid>): Promise<C extends true ? { driverNumber: number; lapDuration: number | null; meetingKey: number; position: number; sessionKey: number; }[] : StartingGrid[]>; getStints(params: InputQueryParams<Stint>): Promise<C extends true ? { compound: "SOFT" | "MEDIUM" | "HARD"; driverNumber: number; lapEnd: number; lapStart: number; meetingKey: number | "latest"; sessionKey: number | "latest"; stintNumber: number; tyreAgeAtStart: number; }[] : Stint[]>; getTeamRadio(params: InputQueryParams<TeamRadio>): Promise<C extends true ? { date: string; driverNumber: number; meetingKey: number | "latest"; recordingUrl: string; sessionKey: number | "latest"; }[] : TeamRadio[]>; getWeather(params: InputQueryParams<Weather>): Promise<C extends true ? { airTemperature: number; date: string; humidity: number; meetingKey: number | "latest"; pressure: number; rainfall: number; sessionKey: number | "latest"; trackTemperature: number; windDirection: number; windSpeed: number; }[] : Weather[]>; }