@takentrade/takentrade-libs
Version:
TakeNTrade shared libraries
32 lines (31 loc) • 1.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.toPrismaDecimal = exports.toDecimal = void 0;
const decimal_js_1 = __importDefault(require("decimal.js"));
const DEFAULT_DECIMAL_PLACES = 4;
decimal_js_1.default.set({ precision: 20, rounding: decimal_js_1.default.ROUND_HALF_UP });
/**
* Convert a value to Decimal
*/
const toDecimal = (value) => {
try {
return new decimal_js_1.default(value);
}
catch (error) {
throw new Error(`Invalid decimal value: ${value}`);
}
};
exports.toDecimal = toDecimal;
/**
* Convert Decimal to Prisma-compatible number
*/
const toPrismaDecimal = (value) => {
if (!decimal_js_1.default.isDecimal(value)) {
throw new Error('Value must be a Decimal instance');
}
return value.toDecimalPlaces(DEFAULT_DECIMAL_PLACES).toNumber();
};
exports.toPrismaDecimal = toPrismaDecimal;