Filter out PH from fielding stats
This commit is contained in:
parent
3f21f24a8a
commit
af375adb68
@ -1,6 +1,6 @@
|
|||||||
import type { Game, Team } from './apiResponseTypes'
|
import type { Game, Team } from './apiResponseTypes'
|
||||||
import type { Player } from './playersService'
|
import type { Player } from './playersService'
|
||||||
import { MODERN_STAT_ERA_START, SITE_URL } from './utilities'
|
import { MODERN_STAT_ERA_START, SITE_URL, isNotUndefined } from './utilities'
|
||||||
|
|
||||||
// TODO make a stats object that has properties for current regular season, current post season,
|
// TODO make a stats object that has properties for current regular season, current post season,
|
||||||
// last 4 games, historical seasons, career totals
|
// last 4 games, historical seasons, career totals
|
||||||
@ -43,7 +43,7 @@ interface FieldingStatRaw {
|
|||||||
interface LegacyFieldingStat {
|
interface LegacyFieldingStat {
|
||||||
player: Player
|
player: Player
|
||||||
team: Team
|
team: Team
|
||||||
pos: 'P' | 'C' | '1B' | '2B' | '3B' | 'SS' | 'LF' | 'CF' | 'RF' | 'TOT'
|
pos: 'P' | 'C' | '1B' | '2B' | '3B' | 'SS' | 'LF' | 'CF' | 'RF' | 'TOT' | 'PH'
|
||||||
xch: number
|
xch: number
|
||||||
xhit: number
|
xhit: number
|
||||||
error: number
|
error: number
|
||||||
@ -67,8 +67,6 @@ export async function fetchFieldingStatsBySeasonAndPlayerId(seasonNumber: number
|
|||||||
|
|
||||||
if (fieldingStatsResponse.count === 0) return []
|
if (fieldingStatsResponse.count === 0) return []
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return fieldingStatsResponse.stats.map(normalizeFieldingStat)
|
return fieldingStatsResponse.stats.map(normalizeFieldingStat)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +80,9 @@ async function fetchLegacyFieldingStatsBySeasonAndPlayerId(seasonNumber: number,
|
|||||||
|
|
||||||
if (legacyFieldingStatsResponse.count === 0) return []
|
if (legacyFieldingStatsResponse.count === 0) return []
|
||||||
|
|
||||||
return legacyFieldingStatsResponse.stats.map(makeModernFieldingStatFromLegacy)
|
return legacyFieldingStatsResponse.stats
|
||||||
|
.map(makeModernFieldingStatFromLegacy)
|
||||||
|
.filter(isNotUndefined)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function fetchFieldingStatsForLastFourGamesBySeasonAndPlayerId(seasonNumber: number, playerId: number): Promise<FieldingStat[]> {
|
export async function fetchFieldingStatsForLastFourGamesBySeasonAndPlayerId(seasonNumber: number, playerId: number): Promise<FieldingStat[]> {
|
||||||
@ -144,7 +144,9 @@ export function aggregateFieldingStats(fieldingStats: FieldingStat[]): FieldingS
|
|||||||
return Object.values(fieldingStatsByPosition)
|
return Object.values(fieldingStatsByPosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
function makeModernFieldingStatFromLegacy(legacyStat: LegacyFieldingStat): FieldingStat {
|
function makeModernFieldingStatFromLegacy(legacyStat: LegacyFieldingStat): FieldingStat | undefined {
|
||||||
|
// filter out "PH" fielding stats here which used to occur when position/xchecks were loosely checked/observed
|
||||||
|
if (legacyStat.pos === 'PH') return undefined
|
||||||
return {
|
return {
|
||||||
game: 'TOT',
|
game: 'TOT',
|
||||||
player: legacyStat.player,
|
player: legacyStat.player,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user