pricing4ts
Version:
 Pricing4TS is a TypeScript-based toolkit designed to enhance the server-side functionality of a pricing-driven SaaS by enabling the seamless integration of pricing plans into the application logic. T
51 lines (50 loc) • 1.89 kB
JavaScript
;
// deno-lint-ignore-file no-explicit-any
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = v10Tov11Updater;
var version_manager_1 = require("../../version-manager");
function v10Tov11Updater(extractedPricing) {
var nextVersion = (0, version_manager_1.calculateNextVersion)(extractedPricing.version);
extractedPricing.version = nextVersion;
_updateDayMonthYearToASingleField(extractedPricing);
return extractedPricing;
}
function _updateDayMonthYearToASingleField(extractedPricing) {
var errors = [];
if (extractedPricing.day === undefined || extractedPricing.day === null) {
errors.push("day field is mandatory");
}
else if (typeof extractedPricing.day !== "number") {
errors.push("day field must be an integer");
}
if (extractedPricing.month === undefined || extractedPricing.month === null) {
errors.push("month field is mandatory");
}
else if (typeof extractedPricing.month !== "number") {
errors.push("month field must be an integer");
}
if (extractedPricing.year === undefined || extractedPricing.year === null) {
errors.push("year field is mandatory");
}
else if (typeof extractedPricing.year !== "number") {
errors.push("year field must be an integer");
}
if (errors.length > 0) {
throw new Error(errors.join("\n"));
}
var day = extractedPricing.day;
var month = extractedPricing.month;
var year = extractedPricing.year;
try {
var createdAt = new Date(year, month - 1, day)
.toISOString()
.split("T")[0]; // Formato yyyy-mm-dd
extractedPricing.createdAt = createdAt;
delete extractedPricing.day;
delete extractedPricing.month;
delete extractedPricing.year;
}
catch (e) {
throw new Error(e.message);
}
}