UNPKG

splatoon3api

Version:

A simple Method to get current and next Splatoon 3 maps, Salmonrun Schedules and Splatnet gear

80 lines (79 loc) 4.67 kB
"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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = parseSalmonrun; function parseSalmonrun(json, translation, salmonGearURL) { return __awaiter(this, void 0, void 0, function* () { let data = { regularSchedules: [], bigRunSchedules: [], monthlyGear: null }; json.data.coopGroupingSchedule.regularSchedules.nodes.forEach((node, index) => { var _a, _b, _c; if (json.data.coopGroupingSchedule.regularSchedules.nodes[index]) { data.regularSchedules[index] = { start_time: json.data.coopGroupingSchedule.regularSchedules.nodes[index].startTime, end_time: json.data.coopGroupingSchedule.regularSchedules.nodes[index].endTime, stage: { name: (_a = translation.stages[json.data.coopGroupingSchedule.regularSchedules.nodes[index].setting.coopStage.id]) === null || _a === void 0 ? void 0 : _a.name, image: json.data.coopGroupingSchedule.regularSchedules.nodes[index].setting.coopStage.image.url }, weapons: [], boss: (_b = translation.bosses[json.data.coopGroupingSchedule.regularSchedules.nodes[index].setting.boss.id]) === null || _b === void 0 ? void 0 : _b.name }; for (let i = 0; i < 4; i++) { data.regularSchedules[index].weapons.push({ name: (_c = translation.weapons[json.data.coopGroupingSchedule.regularSchedules.nodes[index].setting.weapons[i].__splatoon3ink_id]) === null || _c === void 0 ? void 0 : _c.name, image: json.data.coopGroupingSchedule.regularSchedules.nodes[index].setting.weapons[i].image.url }); } } }); json.data.coopGroupingSchedule.bigRunSchedules.nodes.forEach((node, index) => { var _a, _b; if (json.data.coopGroupingSchedule.bigRunSchedules.nodes[index]) { data.bigRunSchedules[index] = { start_time: json.data.coopGroupingSchedule.bigRunSchedules.nodes[index].startTime, end_time: json.data.coopGroupingSchedule.bigRunSchedules.nodes[index].endTime, stage: { name: translation.stages[json.data.coopGroupingSchedule.bigRunSchedules.nodes[index].setting.coopStage.id].name, image: json.data.coopGroupingSchedule.bigRunSchedules.nodes[index].setting.coopStage.image.url }, weapons: [], boss: (_a = translation.bosses[json.data.coopGroupingSchedule.bigRunSchedules.nodes[index].setting.boss.id]) === null || _a === void 0 ? void 0 : _a.name }; for (let i = 0; i < 4; i++) { data.bigRunSchedules[index].weapons.push({ name: (_b = translation.weapons[json.data.coopGroupingSchedule.bigRunSchedules.nodes[index].setting.weapons[i].__splatoon3ink_id]) === null || _b === void 0 ? void 0 : _b.name, image: json.data.coopGroupingSchedule.bigRunSchedules.nodes[index].setting.weapons[i].image.url }); } } }); return fetch(salmonGearURL) .then(res => res.json()) .then(newJson => { var _a; data.monthlyGear = { name: (_a = translation.gear[newJson.data.coopResult.monthlyGear.__splatoon3ink_id]) === null || _a === void 0 ? void 0 : _a.name, type: translation.gearType[newJson.data.coopResult.monthlyGear.__typename], image: newJson.data.coopResult.monthlyGear.image.url }; return data; }) .catch(err => { console.error(err); return data; }); }); } ;