cl-cricket-utils
Version:
A utility package for cricket match calculations
37 lines (31 loc) • 1.28 kB
JavaScript
const calculateTargetRunsAndBallsLeft = (match) => {
if (!match?.status?.id || match?.status?.id > 3) return {};
let targetRuns = 0;
let ballsLeft = 0;
let ballText = "Balls";
if (match?.currentInning?.targetRuns > 0) {
targetRuns = match.currentInning.targetRuns - match.currentInning.totalRuns;
ballsLeft = match.currentInning.ballsLeft;
} else {
ballText = match.currentInning.overs ? "Overs" : "Balls";
targetRuns = match.currentInning.totalRuns + 1;
ballsLeft = match?.currentInning?.overs || match?.currentInning?.ballsLeft;
}
return { targetRuns, ballsLeft, ballText };
};
// Additional function to calculate Required Run Rate
const calculateRequiredRunRate = (targetRuns, ballsLeft) => {
if (ballsLeft === 0) return 0;
return (targetRuns / (ballsLeft / 6)).toFixed(2);
};
// Function to calculate projected score based on current run rate
const calculateProjectedScore = (currentRuns, currentOvers, totalOvers) => {
if (currentOvers === 0) return 0;
let runRate = currentRuns / currentOvers;
return Math.round(runRate * totalOvers);
};
module.exports = {
calculateTargetRunsAndBallsLeft,
calculateRequiredRunRate,
calculateProjectedScore,
};