UNPKG

openf1-js

Version:

OpenF1 API (https://openf1.org) JavaScript SDK

68 lines (67 loc) 2.03 kB
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";