UNPKG

svcorelib

Version:

Core library used in the projects of Sv443 and the Sv443 Network. Contains tons of miscellaneous QoL features.

18 lines (13 loc) 856 B
function mapRange(value, range_1_min, range_1_max, range_2_min, range_2_max) { [value, range_1_min, range_1_max, range_2_min, range_2_max].forEach(arg => { if(isNaN(parseInt(arg)) || typeof arg != "number") throw new Error("Wrong argument(s) provided for mapRange() - (expected: \"Number\", got: \"" + typeof arg + "\")"); }); if(parseFloat(range_1_max) === 0.0 || parseFloat(range_2_max) === 0.0) throw new Error("Division by zero error in mapRange() - make sure the \"range_1_max\" and \"range_2_max\" arguments are not 0"); if(parseFloat(range_1_min) === 0.0 && parseFloat(range_2_min) === 0.0) return value * (range_2_max / range_1_max); return ((value - range_1_min) * ((range_2_max - range_2_min) / (range_1_max - range_1_min)) + range_2_min); } module.exports = mapRange;