@epicallan/money-ts
Version:
TypeScript library for type-safe and lossless encoding and manipulation of world currencies and precious metals
66 lines • 2.3 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getOrd = exports.getEq = exports.getZero = exports.getOne = exports.Discrete = void 0;
var integer = require("./Integer");
var Discrete = /** @class */ (function () {
function Discrete(format, value) {
this.format = format;
this.value = value;
}
Discrete.prototype.add = function (y) {
return new Discrete(this.format, integer.add(this.value, y.value));
};
Discrete.prototype.mul = function (y) {
return new Discrete(this.format, integer.mul(this.value, y));
};
Discrete.prototype.negate = function () {
return new Discrete(this.format, integer.negate(this.value));
};
Discrete.prototype.sub = function (y) {
return new Discrete(this.format, integer.sub(this.value, y.value));
};
Discrete.prototype.div = function (y) {
return new Discrete(this.format, integer.div(this.value, y));
};
Discrete.prototype.isZero = function () {
return integer.isZero(this.value);
};
Discrete.prototype.inspect = function () {
return this.toString();
};
Discrete.prototype.toString = function () {
return this.format.dimension + " " + this.format.unit + " " + integer.show(this.value);
};
return Discrete;
}());
exports.Discrete = Discrete;
function getOne(format) {
return new Discrete(format, integer.one);
}
exports.getOne = getOne;
function getZero(format) {
return new Discrete(format, integer.zero);
}
exports.getZero = getZero;
function getEq() {
return {
equals: function (x, y) { return integer.Eq.equals(x.value, y.value); }
};
}
exports.getEq = getEq;
function getOrd() {
return __assign(__assign({}, getEq()), { compare: function (x, y) { return integer.Ord.compare(x.value, y.value); } });
}
exports.getOrd = getOrd;
//# sourceMappingURL=Discrete.js.map