mout
Version:
Modular Utilities
20 lines (15 loc) • 419 B
text/typescript
/**
* Wraps number within bounds both positive and negative
*/
function overflow(number: number, min: number, max: number): number {
if (max === undefined) {
max = min;
min = 0;
}
const difference = max - min;
if (number < min) {
number += difference * (~~((min - number) / difference) + 1);
}
return min + ((number - min) % difference);
}
export default overflow;