UNPKG

money-ts

Version:

TypeScript library for type-safe and lossless encoding and manipulation of world currencies and precious metals

42 lines 1.5 kB
"use strict"; 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