@f1api/sdk
Version:
An SDK for accessing the https://f1api.dev API.
693 lines (675 loc) • 17.9 kB
TypeScript
declare abstract class Base {
private baseUrl;
constructor();
protected request<T>(endpoint: string, options?: RequestInit): Promise<T>;
}
interface BaseApiResponse {
api: string
url: string
offset?: string | number
limit?: string | number
total?: number
}
interface Circuit$1 {
circuitId: string;
circuitName: string;
country: string;
city: string;
circuitLength: number;
firstParticipationYear: number;
numberOfCorners: number;
lapRecord: string;
fastestLapDriverId: string;
fastestLapTeamId: string;
fastestLapYear: number;
url: string;
}
interface CircuitApiResponse extends BaseApiResponse {
circuit: Circuit$1[];
}
interface CircuitsApiResponse extends BaseApiResponse {
circuits: Circuit$1[];
}
declare class Circuits extends Base {
getCircuits({ limit, offset, }?: {
limit?: number;
offset?: number;
}): Promise<CircuitsApiResponse>;
getCircuit({ id }: {
id: string;
}): Promise<CircuitApiResponse>;
getCircuitsByYear({ year, limit, offset, }: {
year: number;
limit?: number;
offset?: number;
}): Promise<CircuitsApiResponse>;
}
interface Driver$2 {
driverId: string;
name: string;
surname: string;
nationality: string;
birthday: string;
number: number | null;
shortName: string;
url: string;
}
interface Team$2 {
teamId: string;
teamName: string;
teamNationality: string;
firstAppeareance: number | null;
constructorsChampionships: number | null;
driversChampionships: number | null;
url: string;
}
interface SprintResult {
finishingPosition: number;
gridPosition: number;
raceTime: string;
pointsObtained: number;
retired: boolean | null;
}
interface Result {
race: {
raceId: string;
name: string;
round: number;
date: string;
circuit: {
circuitId: string;
name: string;
country: string;
city: string;
length: number;
lapRecord: string;
fastestLapDriverId: string;
fastestLapTeamId: string;
fastestLapYear: number;
numberOfCorners: number;
firstParticipationYear: number;
};
};
result: {
finishingPosition: number;
gridPosition: number;
raceTime: string;
pointsObtained: number;
retired: boolean | null;
};
sprintResult: SprintResult | null;
}
interface DriversApiResponse extends BaseApiResponse {
drivers: Driver$2[];
}
interface DriverApiResponse extends BaseApiResponse {
driver: Driver$2[];
}
interface DriversByYearWithResultsApiResponse extends BaseApiResponse {
season: string | number;
championshipId: string;
driver: Driver$2;
team: Team$2;
results: Result[];
}
declare class Drivers extends Base {
getDrivers({ limit, offset, }?: {
limit?: number;
offset?: number;
}): Promise<DriversApiResponse>;
getDriversByYear({ year, limit, offset, }: {
year: number;
limit?: number;
offset?: number;
}): Promise<DriversApiResponse>;
getDriver({ id }: {
id: string;
}): Promise<DriverApiResponse>;
getCurrentDrivers({ limit, offset, }?: {
limit?: number;
offset?: number;
}): Promise<DriversApiResponse>;
getCurrentDriver({ id, limit, offset, }: {
id: string;
limit?: number;
offset?: number;
}): Promise<DriversByYearWithResultsApiResponse>;
getDriverByYear({ year, id, limit, offset, }: {
year: number;
id: string;
limit?: number;
offset?: number;
}): Promise<DriversByYearWithResultsApiResponse>;
}
interface Race {
raceId: string;
championshipId: string;
raceName: string;
schedule: {
race: {
date: string;
time: string;
};
qualy: {
date: string;
time: string;
};
fp1: {
date: string;
time: string;
};
fp2: {
date: string;
time: string;
} | null;
fp3: {
date: string;
time: string;
} | null;
sprintQualy: {
date: string;
time: string;
} | null;
sprintRace: {
date: string;
time: string;
} | null;
};
laps: number;
round: number;
url: string;
fast_lap: {
fast_lap: string;
fast_lap_driver_id: string;
fast_lap_team_id: string;
};
circuit: {
circuitId: string;
circuitName: string;
country: string;
city: string;
circuitLength: string;
lapRecord: string;
firstParticipationYear: number;
corners: number;
fastestLapDriverId: string;
fastestLapTeamId: string;
fastestLapYear: number;
url: string;
};
winner: {
driverId: string;
name: string;
surname: string;
country: string;
birthday: string;
number: number | null;
shortName: string | null;
url: string;
} | null;
teamWinner: {
teamId: string;
teamName: string;
country: string;
firstAppeareance: number;
constructorsChampionships: number | null;
driversChampionships: number | null;
url: string;
};
}
interface RacesApiResponse extends BaseApiResponse {
season: string | number;
championship: {
championshipId: string;
championshipName: string;
url: string;
year: number;
};
races: Race[];
}
interface RaceApiResponse extends BaseApiResponse {
season: string | number;
championship: {
championshipId: string;
championshipName: string;
url: string;
year: number;
};
race: Race[];
}
declare class Races extends Base {
getRacesByYear({ year, limit, offset, }: {
year: number;
limit?: number;
offset?: number;
}): Promise<RacesApiResponse>;
getCurrentRaces({ limit, offset, }?: {
limit?: number;
offset?: number;
}): Promise<RacesApiResponse>;
getRaceInfo({ year, round, }: {
year: number;
round: number;
}): Promise<RaceApiResponse>;
getLastRace(): Promise<RaceApiResponse>;
getNextRace(): Promise<RaceApiResponse>;
}
interface Fp1Results {
fp1Id: number;
driverId: string;
teamId: string;
time: string;
driver: Driver$1;
team: Team$1;
}
interface Fp2Results {
fp2Id: number;
driverId: string;
teamId: string;
time: string;
driver: Driver$1;
team: Team$1;
}
interface Fp3Results {
fp3Id: number;
driverId: string;
teamId: string;
time: string;
driver: Driver$1;
team: Team$1;
}
interface QualyResults {
classificationId: number;
driverId: string;
teamId: string;
q1: string;
q2: string;
q3: string;
gridPosition: number;
driver: Driver$1;
team: Team$1;
}
interface RaceResults {
position: number;
points: number;
grid: number;
time: string;
fastLap: string | null;
retired: boolean | null;
driver: Driver$1;
team: Team$1;
}
interface SprintQualyResults {
sprintQualyId: number;
driverId: string;
teamId: string;
sq1: string;
sq2: string;
sq3: string;
gridPosition: number;
driver: Driver$1;
team: Team$1;
}
interface SprintRaceResults {
sprintRaceId: number;
driverId: string;
teamId: string;
position: number;
points: number;
gridPosition: number;
driver: Driver$1;
team: Team$1;
}
interface Driver$1 {
driverId: string;
name: string;
surname: string;
nationality: string;
number: number;
shortName: string;
birthday: string;
url: string;
}
interface Team$1 {
teamId: string;
teamName: string;
firstAppareance: number;
constructorsChampionships: number | null;
driversChampionships: number | null;
url: string;
}
interface Circuit {
circuitId: string;
circuitName: string;
country: string;
city: string;
circuitLength: string;
lapRecord: string;
firstParticipationYear: number;
corners: number;
fastestLapDriverId: string;
fastestLapTeamId: string;
fastestLapYear: number;
url: string;
}
interface Fp1ResultsApiResponse extends BaseApiResponse {
season: string | number;
races: {
round: string | number;
fp1Date: string;
fp1Time: string;
url: string;
raceId: string;
raceName: string;
circuit: Circuit;
fp1Results: Fp1Results[];
};
}
interface Fp2ResultsApiResponse extends BaseApiResponse {
season: string | number;
races: {
round: string | number;
fp2Date: string;
fp2Time: string;
url: string;
raceId: string;
raceName: string;
circuit: Circuit;
fp2Results: Fp2Results[];
};
}
interface Fp3ResultsApiResponse extends BaseApiResponse {
season: string | number;
races: {
round: string | number;
fp3Date: string;
fp3Time: string;
url: string;
raceId: string;
raceName: string;
circuit: Circuit;
fp3Results: Fp3Results[];
};
}
interface QualyResultsApiResponse extends BaseApiResponse {
season: string | number;
races: {
round: string | number;
qualyDate: string;
qualyTime: string;
url: string;
raceId: string;
raceName: string;
circuit: Circuit;
qualyResults: QualyResults[];
};
}
interface RaceResultsApiResponse extends BaseApiResponse {
season: string | number;
races: {
round: string | number;
date: string;
time: string;
url: string;
raceId: string;
raceName: string;
circuit: Circuit;
results: RaceResults[];
};
}
interface SprintQualyResultsApiResponse extends BaseApiResponse {
season: string | number;
races: {
round: string | number;
date: string;
time: string;
url: string;
raceId: string;
raceName: string;
circuit: Circuit;
sprintQualyResults: SprintQualyResults[];
};
}
interface SprintRaceResultsApiResponse extends BaseApiResponse {
season: string | number;
races: {
round: string | number;
date: string;
time: string;
url: string;
raceId: string;
raceName: string;
circuit: Circuit;
sprintRaceResults: SprintRaceResults[];
};
}
declare class Results extends Base {
getFp1Results({ year, round, limit, offset, }: {
year: number;
round: number;
limit?: number;
offset?: number;
}): Promise<Fp1ResultsApiResponse>;
getLastFp1Results({ limit, offset, }: {
limit?: number;
offset?: number;
}): Promise<Fp1ResultsApiResponse>;
getFp2Results({ year, round, limit, offset, }: {
year: number;
round: number;
limit?: number;
offset?: number;
}): Promise<Fp2ResultsApiResponse>;
getLastFp2Results({ limit, offset, }: {
limit?: number;
offset?: number;
}): Promise<Fp2ResultsApiResponse>;
getFp3Results({ year, round, limit, offset, }: {
year: number;
round: number;
limit?: number;
offset?: number;
}): Promise<Fp3ResultsApiResponse>;
getLastFp3Results({ limit, offset, }: {
limit?: number;
offset?: number;
}): Promise<Fp3ResultsApiResponse>;
getQualyResults({ year, round, limit, offset, }: {
year: number;
round: number;
limit?: number;
offset?: number;
}): Promise<QualyResultsApiResponse>;
getLastQualyResults({ limit, offset, }: {
limit?: number;
offset?: number;
}): Promise<QualyResultsApiResponse>;
getRaceResults({ year, round, limit, offset, }: {
year: number;
round: number;
limit?: number;
offset?: number;
}): Promise<RaceResultsApiResponse>;
getLastRaceResults({ limit, offset, }: {
limit?: number;
offset?: number;
}): Promise<RaceResultsApiResponse>;
getSprintRaceResults({ year, round, limit, offset, }: {
year: number;
round: number;
limit?: number;
offset?: number;
}): Promise<SprintRaceResultsApiResponse>;
getLastSprintRaceResults({ limit, offset, }: {
limit?: number;
offset?: number;
}): Promise<SprintRaceResultsApiResponse>;
getSprintQualyResults({ year, round, limit, offset, }: {
year: number;
round: number;
limit?: number;
offset?: number;
}): Promise<SprintQualyResultsApiResponse>;
getLastSprintQualyResults({ limit, offset, }: {
limit?: number;
offset?: number;
}): Promise<SprintQualyResultsApiResponse>;
}
interface Season {
championshipId: string;
championshipName: string;
url: string;
year: number;
}
interface SeasonsApiResponse extends BaseApiResponse {
championships: Season[];
}
declare class Seasons extends Base {
getSeasons({ limit, offset, }?: {
limit?: number;
offset?: number;
}): Promise<SeasonsApiResponse>;
}
interface DriverStandings {
classificationId: number;
driverId: string;
teamId: string;
points: number;
position: number;
wins: number | null;
driver: {
name: string;
surname: string;
nationality: string;
birthday: string;
number: number | null;
shortName: string | null;
url: string;
};
team: {
teamId: string;
teamName: string;
country: string;
firstAppareance: number | null;
constructorsChampionships: number | null;
driversChampionships: number | null;
url: string;
};
}
interface DriverStandingsApiResponse extends BaseApiResponse {
season: string | number;
championshipId: string;
drivers_championship: DriverStandings[];
}
interface ConstructorStandings {
classificationId: number;
teamId: string;
points: number;
position: number;
wins: number | null;
team: {
teamName: string;
country: string;
firstAppareance: number | null;
constructorsChampionships: number | null;
driversChampionships: number | null;
url: string;
};
}
interface ConstructorStandingsApiResponse extends BaseApiResponse {
season: string | number;
championshipId: string;
constructors_championship: ConstructorStandings[];
}
declare class Standings extends Base {
getDriverStandings({ year, limit, offset, }: {
year: number;
limit?: number;
offset?: number;
}): Promise<DriverStandingsApiResponse>;
getCurrentDriverStandings({ limit, offset, }?: {
limit?: number;
offset?: number;
}): Promise<DriverStandingsApiResponse>;
getConstructorStandings({ year, limit, offset, }: {
year: number;
limit?: number;
offset?: number;
}): Promise<ConstructorStandingsApiResponse>;
getCurrentConstructorStandings({ limit, offset, }?: {
limit?: number;
offset?: number;
}): Promise<ConstructorStandingsApiResponse>;
}
interface Team {
teamId: string;
teamName: string;
teamNationality: string;
firstAppeareance: number;
constructorsChampionships: number | null;
driversChampionships: number | null;
url: string;
}
interface Driver {
driverId: string;
name: string;
surname: string;
nationality: string;
birthday: string;
number: number | null;
shortName: string | null;
url: string;
}
interface TeamsApiResponse extends BaseApiResponse {
teams: Team[];
}
interface TeamApiResponse extends BaseApiResponse {
team: Team[];
}
interface TeamWithDriversApiResponse extends BaseApiResponse {
season: string | number;
teamId: string;
team: Team;
drivers: Driver[];
}
declare class Teams extends Base {
getTeams({ limit, offset, }?: {
limit?: number;
offset?: number;
}): Promise<TeamsApiResponse>;
getTeam({ id }: {
id: string;
}): Promise<TeamApiResponse>;
getTeamsByYear({ year, limit, offset, }: {
year: number;
limit?: number;
offset?: number;
}): Promise<TeamsApiResponse>;
getCurrentTeams({ limit, offset, }?: {
limit?: number;
offset?: number;
}): Promise<TeamsApiResponse>;
getTeamByYear({ year, id, }: {
year: number;
id: string;
}): Promise<TeamApiResponse>;
getCurrentTeam({ id }: {
id: string;
}): Promise<TeamApiResponse>;
getTeamByYearWithDrivers({ year, id, limit, offset, }: {
year: number;
id: string;
limit?: number;
offset?: number;
}): Promise<TeamWithDriversApiResponse>;
getCurrentTeamWithDrivers({ id, limit, offset, }: {
id: string;
limit?: number;
offset?: number;
}): Promise<TeamWithDriversApiResponse>;
}
declare class F1Api extends Base {
}
interface F1Api extends Seasons, Circuits, Standings, Drivers, Teams, Races, Results {
}
export { type CircuitApiResponse, Circuits, type CircuitsApiResponse, type ConstructorStandingsApiResponse, type DriverApiResponse, type DriverStandingsApiResponse, Drivers, type DriversApiResponse, type DriversByYearWithResultsApiResponse, F1Api, type RaceApiResponse, Races, type RacesApiResponse, Results, Seasons, type SeasonsApiResponse, Standings, type TeamApiResponse, type TeamWithDriversApiResponse, Teams, type TeamsApiResponse };