@rapidthenerd/ergast-ts
Version:
Node wrapper for Ergast API
430 lines (429 loc) • 22.7 kB
JavaScript
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
var ergastNode_1 = require("./ergastNode");
function testSeasons(ergast) {
return __awaiter(this, void 0, void 0, function () {
var season, seasonDataForYear, _i, seasonDataForYear_1, seasonDatum, seasonDataForCurrentYear, _a, seasonDataForCurrentYear_1, seasonDatum;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
season = ergast.seasons;
return [4 /*yield*/, season.getForYear(2020)];
case 1:
seasonDataForYear = _b.sent();
for (_i = 0, seasonDataForYear_1 = seasonDataForYear; _i < seasonDataForYear_1.length; _i++) {
seasonDatum = seasonDataForYear_1[_i];
console.log(seasonDatum.season);
console.log(seasonDatum.round);
console.log(seasonDatum.wikiUrl);
console.log(seasonDatum.raceName);
console.log(seasonDatum.circuit.name);
console.log(seasonDatum.circuit.id);
console.log(seasonDatum.circuit.lat);
console.log(seasonDatum.circuit.long);
console.log(seasonDatum.circuit.local);
console.log(seasonDatum.circuit.country);
console.log(seasonDatum.circuit.wikiUrl);
console.log(seasonDatum.date);
console.log(seasonDatum.time);
console.log(seasonDatum.firstPractice);
console.log(seasonDatum.secondPractice);
console.log(seasonDatum.thirdPractice);
console.log(seasonDatum.qualifying);
}
return [4 /*yield*/, season.getForCurrentYear()];
case 2:
seasonDataForCurrentYear = _b.sent();
for (_a = 0, seasonDataForCurrentYear_1 = seasonDataForCurrentYear; _a < seasonDataForCurrentYear_1.length; _a++) {
seasonDatum = seasonDataForCurrentYear_1[_a];
console.log(seasonDatum.season);
console.log(seasonDatum.round);
console.log(seasonDatum.wikiUrl);
console.log(seasonDatum.raceName);
console.log(seasonDatum.circuit.name);
console.log(seasonDatum.circuit.id);
console.log(seasonDatum.circuit.lat);
console.log(seasonDatum.circuit.long);
console.log(seasonDatum.circuit.local);
console.log(seasonDatum.circuit.country);
console.log(seasonDatum.circuit.wikiUrl);
console.log(seasonDatum.date);
console.log(seasonDatum.time);
console.log(seasonDatum.firstPractice);
console.log(seasonDatum.secondPractice);
console.log(seasonDatum.thirdPractice);
console.log(seasonDatum.qualifying);
}
return [2 /*return*/];
}
});
});
}
function testDriver(ergast) {
return __awaiter(this, void 0, void 0, function () {
var driver, driverByNumber, driverByName;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
driver = ergast.driver;
return [4 /*yield*/, driver.getByDriverNumber(33)];
case 1:
driverByNumber = _a.sent();
console.log(driverByNumber.name);
console.log(driverByNumber.permNumber);
console.log(driverByNumber.totalRaces);
console.log(driverByNumber.totalPodiums);
console.log(driverByNumber.totalWins);
console.log(driverByNumber.totalPodiums);
console.log(driverByNumber.nationality);
console.log(driverByNumber.wikiUrl);
console.log(driverByNumber.dateOfBirth);
return [4 /*yield*/, driver.getByLastName('Hamilton')];
case 2:
driverByName = _a.sent();
console.log(driverByName.name);
console.log(driverByName.permNumber);
console.log(driverByName.totalRaces);
console.log(driverByName.totalPodiums);
console.log(driverByName.totalWins);
console.log(driverByName.totalPodiums);
console.log(driverByName.nationality);
console.log(driverByName.wikiUrl);
console.log(driverByName.dateOfBirth);
return [2 /*return*/];
}
});
});
}
function testStandings(ergast) {
return __awaiter(this, void 0, void 0, function () {
var standings, standingsByYear, _i, standingsByYear_1, standingDatum, standingsCurrentYear, _a, standingsCurrentYear_1, standingDatum;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
standings = ergast.standings;
return [4 /*yield*/, standings.getForYear(2020)];
case 1:
standingsByYear = _b.sent();
for (_i = 0, standingsByYear_1 = standingsByYear; _i < standingsByYear_1.length; _i++) {
standingDatum = standingsByYear_1[_i];
console.log(standingDatum.year);
console.log(standingDatum.position);
console.log(standingDatum.points);
console.log(standingDatum.wins);
console.log(standingDatum.driver.driverId);
console.log(standingDatum.driver.permanentNumber);
console.log(standingDatum.driver.code);
console.log(standingDatum.driver.wikiUrl);
console.log(standingDatum.driver.givenName);
console.log(standingDatum.driver.familyName);
console.log(standingDatum.driver.dateOfBirth);
console.log(standingDatum.driver.nationality);
console.log(standingDatum.constructor.id);
console.log(standingDatum.constructor.wikiUrl);
console.log(standingDatum.constructor.name);
console.log(standingDatum.constructor.nationality);
}
return [4 /*yield*/, standings.getForCurrentYear()];
case 2:
standingsCurrentYear = _b.sent();
for (_a = 0, standingsCurrentYear_1 = standingsCurrentYear; _a < standingsCurrentYear_1.length; _a++) {
standingDatum = standingsCurrentYear_1[_a];
console.log(standingDatum.year);
console.log(standingDatum.position);
console.log(standingDatum.points);
console.log(standingDatum.wins);
console.log(standingDatum.driver.driverId);
console.log(standingDatum.driver.permanentNumber);
console.log(standingDatum.driver.code);
console.log(standingDatum.driver.wikiUrl);
console.log(standingDatum.driver.givenName);
console.log(standingDatum.driver.familyName);
console.log(standingDatum.driver.dateOfBirth);
console.log(standingDatum.driver.nationality);
console.log(standingDatum.constructor.id);
console.log(standingDatum.constructor.wikiUrl);
console.log(standingDatum.constructor.name);
console.log(standingDatum.constructor.nationality);
}
return [2 /*return*/];
}
});
});
}
function testCircuits(ergast) {
return __awaiter(this, void 0, void 0, function () {
var circuit, circuitForCurrentYear, circuitForYear;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
circuit = ergast.circuit;
return [4 /*yield*/, circuit.getForCurrentYear(1)];
case 1:
circuitForCurrentYear = _a.sent();
console.log(circuitForCurrentYear.season);
console.log(circuitForCurrentYear.round);
console.log(circuitForCurrentYear.name);
console.log(circuitForCurrentYear.wikiUrl);
console.log(circuitForCurrentYear.id);
console.log(circuitForCurrentYear.lat);
console.log(circuitForCurrentYear.long);
console.log(circuitForCurrentYear.local);
console.log(circuitForCurrentYear.country);
return [4 /*yield*/, circuit.getFor(2000, 4)];
case 2:
circuitForYear = _a.sent();
console.log(circuitForYear.season);
console.log(circuitForYear.round);
console.log(circuitForYear.name);
console.log(circuitForYear.wikiUrl);
console.log(circuitForYear.id);
console.log(circuitForYear.lat);
console.log(circuitForYear.long);
console.log(circuitForYear.local);
console.log(circuitForYear.country);
return [2 /*return*/];
}
});
});
}
function testConstructors(ergast) {
return __awaiter(this, void 0, void 0, function () {
var constructors, constructorForTeam;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
constructors = ergast.constructors;
return [4 /*yield*/, constructors.getForTeam('red_bull')];
case 1:
constructorForTeam = _a.sent();
console.log(constructorForTeam.id);
console.log(constructorForTeam.wikiUrl);
console.log(constructorForTeam.name);
console.log(constructorForTeam.nationality);
return [2 /*return*/];
}
});
});
}
function testFinishing(ergast) {
return __awaiter(this, void 0, void 0, function () {
var finishing, finishingForYear, _i, finishingForYear_1, finishingStatusDatum, finishingForCurrent, _a, finishingForCurrent_1, finishingStatusDatum;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
finishing = ergast.finishingStatus;
return [4 /*yield*/, finishing.getFor(2000, 3)];
case 1:
finishingForYear = _b.sent();
for (_i = 0, finishingForYear_1 = finishingForYear; _i < finishingForYear_1.length; _i++) {
finishingStatusDatum = finishingForYear_1[_i];
console.log(finishingStatusDatum.season);
console.log(finishingStatusDatum.round);
console.log(finishingStatusDatum.status);
console.log(finishingStatusDatum.count);
console.log(finishingStatusDatum.status);
}
return [4 /*yield*/, finishing.getForCurrentYear(1)];
case 2:
finishingForCurrent = _b.sent();
for (_a = 0, finishingForCurrent_1 = finishingForCurrent; _a < finishingForCurrent_1.length; _a++) {
finishingStatusDatum = finishingForCurrent_1[_a];
console.log(finishingStatusDatum.season);
console.log(finishingStatusDatum.round);
console.log(finishingStatusDatum.status);
console.log(finishingStatusDatum.count);
console.log(finishingStatusDatum.status);
}
return [2 /*return*/];
}
});
});
}
function testLaps(ergast) {
return __awaiter(this, void 0, void 0, function () {
var laps, lapsFor, _i, _a, timing;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
laps = ergast.laps;
return [4 /*yield*/, laps.getFor(2000, 3, 2)];
case 1:
lapsFor = _b.sent();
console.log(lapsFor.season);
console.log(lapsFor.round);
console.log(lapsFor.wikiUrl);
console.log(lapsFor.raceName);
console.log(lapsFor.circuit.lat);
console.log(lapsFor.circuit.long);
console.log(lapsFor.circuit.season);
console.log(lapsFor.circuit.country);
console.log(lapsFor.circuit.round);
console.log(lapsFor.circuit.id);
console.log(lapsFor.circuit.wikiUrl);
console.log(lapsFor.circuit.local);
console.log(lapsFor.circuit.name);
console.log(lapsFor.date);
console.log(lapsFor.time);
console.log(lapsFor.number);
for (_i = 0, _a = lapsFor.timings; _i < _a.length; _i++) {
timing = _a[_i];
console.log(timing.time);
console.log(timing.position);
console.log(timing.driverId);
}
return [2 /*return*/];
}
});
});
}
function testPitStops(ergast) {
return __awaiter(this, void 0, void 0, function () {
var pitStops, pitStopsForYear, pitStopsForCurrentYear;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
pitStops = ergast.pitStops;
return [4 /*yield*/, pitStops.getFor(2014, 4, 1)];
case 1:
pitStopsForYear = _a.sent();
console.log(pitStopsForYear.stop);
console.log(pitStopsForYear.season);
console.log(pitStopsForYear.circuit.name);
console.log(pitStopsForYear.circuit.lat);
console.log(pitStopsForYear.circuit.long);
console.log(pitStopsForYear.circuit.local);
console.log(pitStopsForYear.circuit.country);
console.log(pitStopsForYear.circuit.id);
console.log(pitStopsForYear.circuit.wikiUrl);
console.log(pitStopsForYear.circuit.round);
return [4 /*yield*/, pitStops.getForCurrentYear(2, 3)];
case 2:
pitStopsForCurrentYear = _a.sent();
console.log(pitStopsForCurrentYear.stop);
console.log(pitStopsForCurrentYear.season);
console.log(pitStopsForCurrentYear.circuit.name);
console.log(pitStopsForCurrentYear.circuit.lat);
console.log(pitStopsForCurrentYear.circuit.long);
console.log(pitStopsForCurrentYear.circuit.local);
console.log(pitStopsForCurrentYear.circuit.country);
console.log(pitStopsForCurrentYear.circuit.id);
console.log(pitStopsForCurrentYear.circuit.wikiUrl);
console.log(pitStopsForCurrentYear.circuit.round);
return [2 /*return*/];
}
});
});
}
function testQualifying(ergast) {
return __awaiter(this, void 0, void 0, function () {
var qualifying, qualifyingForYear, _i, _a, qualifyingEntry;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
qualifying = ergast.qualifying;
return [4 /*yield*/, qualifying.getFor(2022, 2)];
case 1:
qualifyingForYear = _b.sent();
console.log(qualifyingForYear.season);
console.log(qualifyingForYear.round);
console.log(qualifyingForYear.wikiUrl);
console.log(qualifyingForYear.circuit.name);
console.log(qualifyingForYear.circuit.lat);
console.log(qualifyingForYear.circuit.long);
console.log(qualifyingForYear.circuit.local);
console.log(qualifyingForYear.circuit.country);
console.log(qualifyingForYear.circuit.id);
console.log(qualifyingForYear.circuit.wikiUrl);
console.log(qualifyingForYear.circuit.round);
console.log(qualifyingForYear.date.toString());
console.log(qualifyingForYear.time);
for (_i = 0, _a = qualifyingForYear.qualifyingEntries; _i < _a.length; _i++) {
qualifyingEntry = _a[_i];
console.log(qualifyingEntry.number);
console.log(qualifyingEntry.position);
console.log(qualifyingEntry.driverId);
console.log(qualifyingEntry.permanentNumber);
console.log(qualifyingEntry.code);
console.log(qualifyingEntry.wikiUrl);
console.log(qualifyingEntry.givenName);
console.log(qualifyingEntry.familyName);
console.log(qualifyingEntry.dateOfBirth.toString());
console.log(qualifyingEntry.nationality);
console.log(qualifyingEntry.constructor.id);
console.log(qualifyingEntry.constructor.wikiUrl);
console.log(qualifyingEntry.constructor.name);
console.log(qualifyingEntry.constructor.nationality);
console.log(qualifyingEntry.q1);
console.log(qualifyingEntry.q2);
console.log(qualifyingEntry.q3);
}
return [2 /*return*/];
}
});
});
}
function testAll() {
return __awaiter(this, void 0, void 0, function () {
var ergast;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
ergast = new ergastNode_1.ErgastNode();
// await testSeasons(ergast);
// await testDriver(ergast);
// await testStandings(ergast);
// await testCircuits(ergast);
// await testConstructors(ergast);
// await testLaps(ergast);
return [4 /*yield*/, testPitStops(ergast)];
case 1:
// await testSeasons(ergast);
// await testDriver(ergast);
// await testStandings(ergast);
// await testCircuits(ergast);
// await testConstructors(ergast);
// await testLaps(ergast);
_a.sent();
return [2 /*return*/];
}
});
});
}
testAll().then(function (r) { return console.log('All tests completed.'); });