openf1-client
Version:
Library for querying data from the OpenF1 API
178 lines (177 loc) • 6.26 kB
TypeScript
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[]>;
}