From e6d6f5f2f6ff32747db4beed4df0734222907bdc Mon Sep 17 00:00:00 2001 From: Max Coplan Date: Mon, 8 Nov 2021 21:56:20 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20Add=20types=20to=20`com?= =?UTF-8?q?pute.ts`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit should not change behavior --- src/lib/stats/compute.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/lib/stats/compute.ts b/src/lib/stats/compute.ts index 5225e6b..188b43b 100644 --- a/src/lib/stats/compute.ts +++ b/src/lib/stats/compute.ts @@ -26,7 +26,7 @@ import { } from "./definitions"; import { GameDetails, Stat, StatDefinition } from "./types"; -export const STAT_DEFINITIONS = new Map(); +export const STAT_DEFINITIONS = new Map(); STAT_DEFINITIONS.set(Stat.OPENINGS_PER_KILL, openingsPerKill); STAT_DEFINITIONS.set(Stat.DAMAGE_PER_OPENING, damagePerOpening); STAT_DEFINITIONS.set(Stat.NEUTRAL_WINS, neutralWins); @@ -48,7 +48,6 @@ function computeStats(statsList: string[], games: GameDetails[]) { return []; } - // console.log(firstGame); const orderIndices = _.map(firstGame.settings.players, "playerIndex"); const reversedIndices = _.chain(orderIndices).clone().reverse().value(); const indices = [orderIndices, reversedIndices]; @@ -76,26 +75,32 @@ function computeStats(statsList: string[], games: GameDetails[]) { return statResults; } +const enum WinStatus { + winner = "winner", + loser = "loser", + unknown = "unknown" +} + function generateGameInfo(games: GameDetails[]) { const getStartAt = (game: GameDetails) => game.metadata.startAt; const orderedGames = _.orderBy(games, [getStartAt], ["asc"]); - const getResultForPlayer = (game: GameDetails, playerIndex: number): "winner" | "loser" | "unknown" => { + const getResultForPlayer = (game: GameDetails, playerIndex: number): WinStatus => { const gameEnd = game.gameEnd; if (gameEnd) { // Handle LRAS switch (gameEnd.gameEndMethod) { case 7: - return gameEnd.lrasInitiatorIndex === playerIndex ? "loser" : "winner"; + return gameEnd.lrasInitiatorIndex === playerIndex ? WinStatus.loser : WinStatus.winner; } } const latestFrame = game.latestFrame; if (!latestFrame) { - return "unknown"; + return WinStatus.unknown; } const winner = findWinner(latestFrame); - return winner === playerIndex ? "winner" : "loser"; + return winner === playerIndex ? WinStatus.winner : WinStatus.loser; }; const generatePlayerInfo = (game: GameDetails) => (player: PlayerType) => {