export function minByOrNull(value: T[], transform: (it: T) => number): T | null { if (value.length === 0) return null; let min = value[0]; let minVal = transform(min); for (let index = 1; index < value.length; index++) { const it = value[index]; const val = transform(it); if (val < minVal) { min = it; minVal = val; } } return min; }