uom-ts
Version:
Units of measure type safety, with no runtime overhead, supporting multiplication and division!
145 lines (144 loc) • 3.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sum = exports.min = exports.max = exports.isArrayNonEmpty = exports.lte = exports.lt = exports.gte = exports.gt = exports.eq = exports.round = exports.ceil = exports.floor = exports.abs = exports.negate = exports.sqrt2 = exports.pow2 = exports.mod = exports.div = exports.mul = exports.sub = exports.add = void 0;
function add() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return (args[0] + args[1]);
}
;
return function (v) { return (args[0] + v); };
}
exports.add = add;
;
function sub() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return (args[0] - args[1]);
}
;
return function (v) { return (v - args[0]); };
}
exports.sub = sub;
;
function mul() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return (args[0] * args[1]);
}
;
return function (v) { return (args[0] * v); };
}
exports.mul = mul;
;
function div() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return (args[0] / args[1]);
}
;
return function (v) { return (v / args[0]); };
}
exports.div = div;
;
function mod() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return (args[0] % args[1]);
}
;
return function (v) { return (v % args[0]); };
}
exports.mod = mod;
;
exports.pow2 = function (a) { return mul(a, a); };
exports.sqrt2 = function (a) { return Math.sqrt(a); };
exports.negate = function (a) { return -a; };
exports.abs = function (a) { return Math.abs(a); };
exports.floor = function (a) { return Math.floor(a); };
exports.ceil = function (a) { return Math.ceil(a); };
exports.round = function (a) { return Math.round(a); };
function eq() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return args[0] === args[1];
}
;
return function (v) { return args[0] === v; };
}
exports.eq = eq;
;
function gt() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return args[0] > args[1];
}
;
return function (v) { return v > args[0]; };
}
exports.gt = gt;
;
function gte() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return args[0] >= args[1];
}
;
return function (v) { return v >= args[0]; };
}
exports.gte = gte;
;
function lt() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return args[0] < args[1];
}
;
return function (v) { return v < args[0]; };
}
exports.lt = lt;
;
function lte() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (args.length === 2) {
return args[0] <= args[1];
}
;
return function (v) { return v <= args[0]; };
}
exports.lte = lte;
;
exports.isArrayNonEmpty = function (a) { return a.length > 0; };
exports.max = function (a) { return Math.max.apply(Math, a); };
exports.min = function (a) { return Math.min.apply(Math, a); };
exports.sum = function (a) { return a.reduce(add); };