bb-inspired
Version:
Core library for BB-inspired NestJS backend
101 lines • 4.26 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BigNumberService = void 0;
const common_1 = require("@nestjs/common");
const bignumber_js_1 = require("bignumber.js");
const bignumber_utils_1 = require("./bignumber.utils");
let BigNumberService = class BigNumberService {
constructor(config) {
if (config) {
bignumber_js_1.default.config(config);
}
else {
bignumber_js_1.default.config({
DECIMAL_PLACES: 20,
ROUNDING_MODE: bignumber_js_1.default.ROUND_HALF_UP,
EXPONENTIAL_AT: [-10, 20],
RANGE: [-1e9, 1e9],
CRYPTO: false,
MODULO_MODE: bignumber_js_1.default.ROUND_DOWN,
POW_PRECISION: 100,
FORMAT: {
decimalSeparator: '.',
groupSeparator: ',',
groupSize: 3,
secondaryGroupSize: 0,
fractionGroupSeparator: ' ',
fractionGroupSize: 0,
},
});
}
}
create(value) {
return new bignumber_js_1.default(value);
}
format(value, decimalPlaces = 2, roundingMode = bignumber_js_1.default.ROUND_HALF_UP, prefix = '', suffix = '') {
return bignumber_utils_1.BigNumberUtils.format(value, decimalPlaces, roundingMode, prefix, suffix);
}
formatCurrency(value, currencySymbol = '$', decimalPlaces = 2) {
return bignumber_utils_1.BigNumberUtils.formatCurrency(value, currencySymbol, decimalPlaces);
}
formatPercent(value, decimalPlaces = 2) {
return bignumber_utils_1.BigNumberUtils.formatPercent(value, decimalPlaces);
}
add(...values) {
return bignumber_utils_1.BigNumberUtils.add(...values);
}
subtract(...values) {
return bignumber_utils_1.BigNumberUtils.subtract(...values);
}
multiply(...values) {
return bignumber_utils_1.BigNumberUtils.multiply(...values);
}
divide(...values) {
return bignumber_utils_1.BigNumberUtils.divide(...values);
}
power(base, exponent) {
return bignumber_utils_1.BigNumberUtils.power(base, exponent);
}
abs(value) {
return bignumber_utils_1.BigNumberUtils.abs(value);
}
isEqual(a, b) {
return bignumber_utils_1.BigNumberUtils.isEqual(a, b);
}
isGreaterThan(a, b) {
return bignumber_utils_1.BigNumberUtils.isGreaterThan(a, b);
}
isLessThan(a, b) {
return bignumber_utils_1.BigNumberUtils.isLessThan(a, b);
}
max(...values) {
return bignumber_utils_1.BigNumberUtils.max(...values);
}
min(...values) {
return bignumber_utils_1.BigNumberUtils.min(...values);
}
average(...values) {
return bignumber_utils_1.BigNumberUtils.average(...values);
}
round(value, decimalPlaces, roundingMode = bignumber_js_1.default.ROUND_HALF_UP) {
return bignumber_utils_1.BigNumberUtils.round(value, decimalPlaces, roundingMode);
}
toFixed(value, decimalPlaces, roundingMode = bignumber_js_1.default.ROUND_HALF_UP) {
return bignumber_utils_1.BigNumberUtils.toFixed(value, decimalPlaces, roundingMode);
}
};
exports.BigNumberService = BigNumberService;
exports.BigNumberService = BigNumberService = __decorate([
(0, common_1.Injectable)(),
__metadata("design:paramtypes", [Object])
], BigNumberService);
//# sourceMappingURL=bignumber.service.js.map