openf1-js
Version:
OpenF1 API (https://openf1.org) JavaScript SDK
68 lines (67 loc) • 2.03 kB
JavaScript
export class OpenF1 {
constructor(options = {}) {
this.mode = options.mode === "csv" ? "csv" : "json";
this.axios = axios.create({
baseURL: options.baseURL || "https://api.openf1.org/v1/",
});
}
_request(endpoint, params) {
const useCsv = this.mode === "csv";
const reqParams = { ...(params || {}) };
if (useCsv)
reqParams.csv = true;
return this.axios
.get(endpoint, {
params: reqParams,
headers: useCsv ? { Accept: "text/csv" } : undefined,
responseType: useCsv ? "text" : "json",
})
.then((res) => res.data);
}
async getSessions(params) {
return this._request("sessions", params);
}
async getSessionResult(params) {
return this._request("session_result", params);
}
async getStartingGrid(params) {
return this._request("starting_grid", params);
}
async getStints(params) {
return this._request("stints", params);
}
async getMeetings(params) {
return this._request("meetings", params);
}
async getPit(params) {
return this._request("pit", params);
}
async getPosition(params) {
return this._request("position", params);
}
async getRaceControl(params) {
return this._request("race_control", params);
}
async getLocation(params) {
return this._request("location", params);
}
async getLaps(params) {
return this._request("laps", params);
}
async getCarData(params) {
return this._request("car_data", params);
}
async getDrivers(params) {
return this._request("drivers", params);
}
async getIntervals(params) {
return this._request("intervals", params);
}
async getTeamRadio(params) {
return this._request("team_radio", params);
}
async getWeather(params) {
return this._request("weather", params);
}
}
import axios from "axios";