money-ts
Version:
TypeScript library for type-safe and lossless encoding and manipulation of world currencies and precious metals
42 lines • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var newtype_ts_1 = require("newtype-ts");
var Option_1 = require("fp-ts/lib/Option");
var integer = require("./Integer");
var bigInteger = require("./BigInteger");
function wrap(x) {
return fromInteger(integer.wrap(x));
}
exports.wrap = wrap;
exports.unwrap = newtype_ts_1.unsafeCoerce;
function fromInteger(i) {
return integer.isZero(i) ? Option_1.none : Option_1.some(newtype_ts_1.unsafeCoerce(i));
}
exports.fromInteger = fromInteger;
exports.add = newtype_ts_1.unsafeCoerce(integer.add);
exports.mul = newtype_ts_1.unsafeCoerce(integer.mul);
exports.one = newtype_ts_1.unsafeCoerce(integer.one);
exports.negate = newtype_ts_1.unsafeCoerce(integer.negate);
function sub(x, y) {
return fromInteger(integer.sub(x, y));
}
exports.sub = sub;
exports.div = newtype_ts_1.unsafeCoerce(integer.div);
exports.sign = newtype_ts_1.unsafeCoerce(integer.sign);
function gcd(x, y) {
return newtype_ts_1.unsafeCoerce(bigInteger.gcd(integer.unwrap(x), exports.unwrap(y)));
}
exports.gcd = gcd;
function lcm(x, y) {
return newtype_ts_1.unsafeCoerce(bigInteger.lcm(exports.unwrap(x), exports.unwrap(y)));
}
exports.lcm = lcm;
exports.isPositive = integer.isPositive;
function abs(x) {
return newtype_ts_1.unsafeCoerce(!exports.isPositive(x) ? exports.negate(x) : x);
}
exports.abs = abs;
exports.setoid = integer.setoid;
exports.ord = integer.ord;
exports.show = integer.show;
//# sourceMappingURL=NonZeroInteger.js.map