@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
17 lines (14 loc) • 512 B
text/typescript
import { isNaNNumber } from '../utils/lang';
const MIN = 0;
const MAX = 22;
const BASE = 1.5;
/**
* Calculates buckets from latency in milliseconds
*
* @param latencyInMs - latency in milliseconds
* @returns a bucket index from 0 to 22 inclusive
*/
export function findLatencyIndex(latencyInMs: number): number {
const index = Math.min(MAX, Math.max(MIN, Math.ceil(Math.log(latencyInMs) / Math.log(BASE))));
return isNaNNumber(index) ? 0 : index; // index is NaN if latency is not a positive number
}