UNPKG

rivalsjs

Version:

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

350 lines (333 loc) 9.96 kB
import { c as convertToAssetUrl, b as buildQueryString } from '../utils-Dd1WfmFA.mjs'; import { fromPromise } from 'neverthrow'; import '../constants-DMfBNXMm.mjs'; function transformAllAchievementsResponse(data) { const transformedData = { ...data, achievements: data.achievements.map((achievement) => ({ ...achievement, icon: convertToAssetUrl(achievement.icon) })) }; return transformedData; } function transformAchievementResponse(data) { return { ...data, icon: convertToAssetUrl(data.icon) }; } function transformBattlepassResponse(data) { const transformedData = { ...data }; if (transformedData.items.length > 0) { transformedData.items = transformedData.items.map((item) => ({ ...item, image: convertToAssetUrl(item.image) })); } return transformedData; } function transformAllHeroesResponse(data) { return data.map((hero) => transformHeroResponse(hero)); } function transformHeroResponse(data) { return { ...data, imageUrl: convertToAssetUrl(data.imageUrl), transformations: data.transformations.map((transformation) => ({ ...transformation, icon: convertToAssetUrl(transformation.icon) })), costumes: data.costumes.map((costume) => ({ ...costume, icon: convertToAssetUrl(costume.icon) })), abilities: data.abilities.map((ability) => ({ ...ability, icon: 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: convertToAssetUrl(data.info.icon.playerIcon) } } }; } function transformAllMapsResponse(data) { const transformedData = { ...data, maps: data.maps.map((map) => ({ ...map, images: map.images.map((image) => convertToAssetUrl(image)), subMap: map.subMap ? { ...map.subMap, thumbnail: map.subMap.thumbnail ? convertToAssetUrl(map.subMap.thumbnail) : null } : null })) }; return transformedData; } function transformMatchResponse(data) { const transformedData = { ...data.matchDetails, matchPlayers: data.matchDetails.matchPlayers.map((player) => ({ ...player, curHeroIcon: convertToAssetUrl(player.curHeroIcon), playerHeroes: player.playerHeroes.map((hero) => ({ ...hero, heroIcon: convertToAssetUrl(hero.heroIcon) })), badges: player.badges ? player.badges.map((badge) => ({ ...badge, image: badge.image ? 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: convertToAssetUrl(data.player.icon.playerIcon) }, rank: { ...data.player.rank, image: convertToAssetUrl(data.player.rank.image) } }, matchHistory: data.matchHistory.map((match) => ({ ...match, mapThumbnail: convertToAssetUrl(match.mapThumbnail), playerPerformance: { ...match.playerPerformance, heroType: convertToAssetUrl(match.playerPerformance.heroType) } })), heroMatchups: data.heroMatchups.map((matchup) => ({ ...matchup, heroThumbnail: convertToAssetUrl(matchup.heroThumbnail) })), teamMates: data.teamMates.map((teammate) => ({ ...teammate })), heroesRanked: data.heroesRanked.map((hero) => ({ ...hero, heroThumbnail: convertToAssetUrl(hero.heroThumbnail) })), heroesUnranked: data.heroesUnranked.map((hero) => ({ ...hero, heroThumbnail: convertToAssetUrl(hero.heroThumbnail) })), maps: data.maps.map((map) => ({ ...map, mapThumbnail: convertToAssetUrl(map.mapThumbnail) })) }; return transformedData; } function transformPlayerMatchHistoryResponse(data) { return data.matchHistory.map((entry) => ({ ...entry, mapThumbnail: convertToAssetUrl(entry.mapThumbnail), matchPlayer: { ...entry.matchPlayer, playerHero: { ...entry.matchPlayer.playerHero, heroType: convertToAssetUrl(entry.matchPlayer.playerHero.heroType) } } })); } function transformHealthCheckResponse(data) { return data; } async function getAllAchievements(client, page = 1, perPage = 10) { return fromPromise( client.get(routes.allAchievements(page, perPage)), (error) => String(error) ).map((response) => transformAllAchievementsResponse(response.data)); } async function getAchievement(client, name) { return fromPromise( client.get(routes.achievement(name)), (error) => String(error) ).map((response) => transformAchievementResponse(response.data)); } async function getBattlepass(client, season) { return fromPromise( client.get(routes.battlepass(season)), (error) => String(error) ).map((response) => transformBattlepassResponse(response.data)); } async function getAllHeroes(client) { return fromPromise( client.get(routes.allHeroes()), (error) => String(error) ).map((response) => transformAllHeroesResponse(response.data)); } async function getHero(client, name) { return fromPromise( client.get(routes.hero(name)), (error) => String(error) ).map((response) => transformHeroResponse(response.data)); } async function getHeroLeaderboard(client, name) { return fromPromise( client.get(routes.heroLeaderboard(name)), (error) => String(error) ).map((response) => transformHeroLeaderboardResponse(response.data)); } async function getAllMaps(client, page = 1, perPage = 10) { return fromPromise( client.get(routes.allMaps(page, perPage)), (error) => String(error) ).map((response) => transformAllMapsResponse(response.data)); } async function getMatch(client, matchId) { return fromPromise( client.get(routes.singleMatch(matchId)), (error) => String(error) ).map((response) => transformMatchResponse(response.data)); } async function searchPlayer(client, username) { return fromPromise( client.get(routes.searchPlayer(username)), (error) => String(error) ).map((response) => transformFindPlayerResponse(response.data)); } async function getPlayer(client, player, season) { return fromPromise( client.get(routes.player(player, season)), (error) => String(error) ).map((response) => transformGetPlayerResponse(response.data)); } async function updatePlayer(client, player) { return fromPromise( client.get(routes.updatePlayer(player)), (error) => String(error) ).map((response) => transformUpdatePlayerResponse(response.data)); } async function getPlayerMatchHistory(client, uid, season, skip, gameMode, timestamp) { return fromPromise( client.get( routes.getPlayerMatchHistory(uid, season, skip, gameMode, timestamp) ), (error) => String(error) ).map((response) => transformPlayerMatchHistoryResponse(response.data)); } async function getHealthCheck(client) { return 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 buildQueryString(url, { season: season ?? void 0 }); }, allAchievements(page = 1, perPage = 10) { const url = "/v1/achievements"; return 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 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 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 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)}`; } }; export { getAchievement, getAllAchievements, getAllHeroes, getAllMaps, getBattlepass, getHealthCheck, getHero, getHeroLeaderboard, getMatch, getPlayer, getPlayerMatchHistory, routes, searchPlayer, updatePlayer }; //# sourceMappingURL=index.mjs.map