UNPKG

rivalsjs

Version:

<h1 align="center"> Rivals JS </h1>

365 lines (347 loc) 10.6 kB
'use strict'; 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