rivalsjs
Version:
<h1 align="center"> Rivals JS </h1>
365 lines (347 loc) • 10.6 kB
JavaScript
;
var utils = require('../utils-OvSA8CBF.cjs');
var neverthrow = require('neverthrow');
require('../constants-Cz2zS-Zn.cjs');
function transformAllAchievementsResponse(data) {
const transformedData = {
...data,
achievements: data.achievements.map((achievement) => ({
...achievement,
icon: utils.convertToAssetUrl(achievement.icon)
}))
};
return transformedData;
}
function transformAchievementResponse(data) {
return {
...data,
icon: utils.convertToAssetUrl(data.icon)
};
}
function transformBattlepassResponse(data) {
const transformedData = {
...data
};
if (transformedData.items.length > 0) {
transformedData.items = transformedData.items.map((item) => ({
...item,
image: utils.convertToAssetUrl(item.image)
}));
}
return transformedData;
}
function transformAllHeroesResponse(data) {
return data.map((hero) => transformHeroResponse(hero));
}
function transformHeroResponse(data) {
return {
...data,
imageUrl: utils.convertToAssetUrl(data.imageUrl),
transformations: data.transformations.map((transformation) => ({
...transformation,
icon: utils.convertToAssetUrl(transformation.icon)
})),
costumes: data.costumes.map((costume) => ({
...costume,
icon: utils.convertToAssetUrl(costume.icon)
})),
abilities: data.abilities.map((ability) => ({
...ability,
icon: utils.convertToAssetUrl(ability.icon)
}))
};
}
function transformHeroLeaderboardResponse(data) {
return data.players.map((entry) => transformHeroLeaderboardEntry(entry));
}
function transformHeroLeaderboardEntry(data) {
return {
...data,
info: {
...data.info,
icon: {
...data.info.icon,
playerIcon: utils.convertToAssetUrl(data.info.icon.playerIcon)
}
}
};
}
function transformAllMapsResponse(data) {
const transformedData = {
...data,
maps: data.maps.map((map) => ({
...map,
images: map.images.map((image) => utils.convertToAssetUrl(image)),
subMap: map.subMap ? {
...map.subMap,
thumbnail: map.subMap.thumbnail ? utils.convertToAssetUrl(map.subMap.thumbnail) : null
} : null
}))
};
return transformedData;
}
function transformMatchResponse(data) {
const transformedData = {
...data.matchDetails,
matchPlayers: data.matchDetails.matchPlayers.map((player) => ({
...player,
curHeroIcon: utils.convertToAssetUrl(player.curHeroIcon),
playerHeroes: player.playerHeroes.map((hero) => ({
...hero,
heroIcon: utils.convertToAssetUrl(hero.heroIcon)
})),
badges: player.badges ? player.badges.map((badge) => ({
...badge,
image: badge.image ? utils.convertToAssetUrl(badge.image) : null
})) : null
}))
};
return transformedData;
}
function transformFindPlayerResponse(data) {
return data;
}
function transformUpdatePlayerResponse(data) {
if ("error" in data) {
return {
success: false,
message: data.message,
status: data.status ?? 500
};
}
return {
success: data.success,
message: data.message,
status: 200
};
}
function transformGetPlayerResponse(data) {
const transformedData = {
...data,
player: {
...data.player,
icon: {
...data.player.icon,
playerIcon: utils.convertToAssetUrl(data.player.icon.playerIcon)
},
rank: {
...data.player.rank,
image: utils.convertToAssetUrl(data.player.rank.image)
}
},
matchHistory: data.matchHistory.map((match) => ({
...match,
mapThumbnail: utils.convertToAssetUrl(match.mapThumbnail),
playerPerformance: {
...match.playerPerformance,
heroType: utils.convertToAssetUrl(match.playerPerformance.heroType)
}
})),
heroMatchups: data.heroMatchups.map((matchup) => ({
...matchup,
heroThumbnail: utils.convertToAssetUrl(matchup.heroThumbnail)
})),
teamMates: data.teamMates.map((teammate) => ({
...teammate
})),
heroesRanked: data.heroesRanked.map((hero) => ({
...hero,
heroThumbnail: utils.convertToAssetUrl(hero.heroThumbnail)
})),
heroesUnranked: data.heroesUnranked.map((hero) => ({
...hero,
heroThumbnail: utils.convertToAssetUrl(hero.heroThumbnail)
})),
maps: data.maps.map((map) => ({
...map,
mapThumbnail: utils.convertToAssetUrl(map.mapThumbnail)
}))
};
return transformedData;
}
function transformPlayerMatchHistoryResponse(data) {
return data.matchHistory.map((entry) => ({
...entry,
mapThumbnail: utils.convertToAssetUrl(entry.mapThumbnail),
matchPlayer: {
...entry.matchPlayer,
playerHero: {
...entry.matchPlayer.playerHero,
heroType: utils.convertToAssetUrl(entry.matchPlayer.playerHero.heroType)
}
}
}));
}
function transformHealthCheckResponse(data) {
return data;
}
async function getAllAchievements(client, page = 1, perPage = 10) {
return neverthrow.fromPromise(
client.get(routes.allAchievements(page, perPage)),
(error) => String(error)
).map((response) => transformAllAchievementsResponse(response.data));
}
async function getAchievement(client, name) {
return neverthrow.fromPromise(
client.get(routes.achievement(name)),
(error) => String(error)
).map((response) => transformAchievementResponse(response.data));
}
async function getBattlepass(client, season) {
return neverthrow.fromPromise(
client.get(routes.battlepass(season)),
(error) => String(error)
).map((response) => transformBattlepassResponse(response.data));
}
async function getAllHeroes(client) {
return neverthrow.fromPromise(
client.get(routes.allHeroes()),
(error) => String(error)
).map((response) => transformAllHeroesResponse(response.data));
}
async function getHero(client, name) {
return neverthrow.fromPromise(
client.get(routes.hero(name)),
(error) => String(error)
).map((response) => transformHeroResponse(response.data));
}
async function getHeroLeaderboard(client, name) {
return neverthrow.fromPromise(
client.get(routes.heroLeaderboard(name)),
(error) => String(error)
).map((response) => transformHeroLeaderboardResponse(response.data));
}
async function getAllMaps(client, page = 1, perPage = 10) {
return neverthrow.fromPromise(
client.get(routes.allMaps(page, perPage)),
(error) => String(error)
).map((response) => transformAllMapsResponse(response.data));
}
async function getMatch(client, matchId) {
return neverthrow.fromPromise(
client.get(routes.singleMatch(matchId)),
(error) => String(error)
).map((response) => transformMatchResponse(response.data));
}
async function searchPlayer(client, username) {
return neverthrow.fromPromise(
client.get(routes.searchPlayer(username)),
(error) => String(error)
).map((response) => transformFindPlayerResponse(response.data));
}
async function getPlayer(client, player, season) {
return neverthrow.fromPromise(
client.get(routes.player(player, season)),
(error) => String(error)
).map((response) => transformGetPlayerResponse(response.data));
}
async function updatePlayer(client, player) {
return neverthrow.fromPromise(
client.get(routes.updatePlayer(player)),
(error) => String(error)
).map((response) => transformUpdatePlayerResponse(response.data));
}
async function getPlayerMatchHistory(client, uid, season, skip, gameMode, timestamp) {
return neverthrow.fromPromise(
client.get(
routes.getPlayerMatchHistory(uid, season, skip, gameMode, timestamp)
),
(error) => String(error)
).map((response) => transformPlayerMatchHistoryResponse(response.data));
}
async function getHealthCheck(client) {
return neverthrow.fromPromise(
client.get(routes.healthCheck()),
(error) => String(error)
).map((response) => transformHealthCheckResponse(response.data));
}
const routes = {
healthCheck() {
return "/v1";
},
battlepass(season) {
const url = "/v1/battlepass";
return utils.buildQueryString(url, {
season: season ?? void 0
});
},
allAchievements(page = 1, perPage = 10) {
const url = "/v1/achievements";
return utils.buildQueryString(url, {
page: page > 0 ? page : 1,
perPage: perPage > 0 ? perPage : 10
});
},
achievement(name) {
if (!name) {
throw new Error("Achievement name is required");
}
return `/v1/achievement/${encodeURIComponent(name)}`;
},
allMaps(page = 1, perPage = 10) {
const url = "/v1/maps";
return utils.buildQueryString(url, {
page: page > 0 ? page : 1,
limit: perPage > 0 ? perPage : 10
});
},
searchPlayer(username) {
if (!username) {
throw new Error("Username is required");
}
return `/v1/find-player/${encodeURIComponent(username)}`;
},
player(player, season) {
if (!player) {
throw new Error("Player identifier is required");
}
return utils.buildQueryString(`/v1/player/${encodeURIComponent(player)}`, {
season: season ?? void 0
});
},
updatePlayer(player) {
if (!player) {
throw new Error("Player identifier is required");
}
return `/v1/player/${encodeURIComponent(player)}/update`;
},
getPlayerMatchHistory(uid, season, skip, gameMode, timestamp) {
if (!uid) {
throw new Error("Player UID is required");
}
const url = `/v1/player/${encodeURIComponent(uid)}/match-history`;
return utils.buildQueryString(url, {
season: season ?? void 0,
skip: skip ?? void 0,
game_mode: gameMode ?? void 0,
timestamp: timestamp ?? void 0
});
},
allHeroes() {
return "/v1/heroes";
},
hero(name) {
return `/v1/heroes/hero/${encodeURIComponent(name)}`;
},
heroLeaderboard(name) {
return `/v1/heroes/leaderboard/${encodeURIComponent(name)}`;
},
singleMatch(matchId) {
return `/v1/match/${encodeURIComponent(matchId)}`;
}
};
exports.getAchievement = getAchievement;
exports.getAllAchievements = getAllAchievements;
exports.getAllHeroes = getAllHeroes;
exports.getAllMaps = getAllMaps;
exports.getBattlepass = getBattlepass;
exports.getHealthCheck = getHealthCheck;
exports.getHero = getHero;
exports.getHeroLeaderboard = getHeroLeaderboard;
exports.getMatch = getMatch;
exports.getPlayer = getPlayer;
exports.getPlayerMatchHistory = getPlayerMatchHistory;
exports.routes = routes;
exports.searchPlayer = searchPlayer;
exports.updatePlayer = updatePlayer;
//# sourceMappingURL=index.cjs.map