UNPKG

@rsc-labs/medusa-store-analytics

Version:
91 lines (90 loc) 3.78 kB
"use strict"; /* * Copyright 2024 RSC-Labs, https://rsoftcon.com/ * * MIT License * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.convertDateLastsToComparedDateRange = exports.convertDateLastsToDateRange = exports.calculatePercentage = exports.amountToDisplay = void 0; const types_1 = require("./types"); function amountToDisplay(amount, decimalDigits) { return (amount / Math.pow(10, decimalDigits)).toFixed(decimalDigits); } exports.amountToDisplay = amountToDisplay; function calculatePercentage(current, previous) { if (current == previous) { return 0; } if (current == 0) { return 100; } if (previous == 0) { return undefined; } const percentage = Number((((current) - previous) / previous).toFixed(2)) * 100; if (percentage > 0) { return Math.round(percentage * 100) / 100; } return Math.round((percentage - percentage - percentage) * 100) / 100; } exports.calculatePercentage = calculatePercentage; function convertDateLastsToDateRange(dateLasts) { let result; switch (dateLasts) { case types_1.DateLasts.LastMonth: result = { // 86400000 - alignment for taking last 29 days, as the current day is 30 from: new Date(new Date(new Date().setDate(new Date().getDate() - 29)).setHours(0, 0, 0, 0)), to: new Date(Date.now()) }; break; case types_1.DateLasts.LastWeek: result = { // 86400000 - alignment for taking last 6 days, as the current day is 7th from: new Date(new Date(new Date(Date.now() - 604800000 + 86400000)).setHours(0, 0, 0, 0)), to: new Date(Date.now()) }; break; case types_1.DateLasts.LastYear: const lastYearAgo = new Date(new Date().setFullYear(new Date().getFullYear() - 1)); result = { // + 1 - alignment for taking last 11 months, as the current month is 12th from: new Date(new Date(new Date().setDate(new Date().getDate() - 364)).setHours(0, 0, 0, 0)), to: new Date(Date.now()) }; break; } return result; } exports.convertDateLastsToDateRange = convertDateLastsToDateRange; function convertDateLastsToComparedDateRange(dateLasts) { let result; switch (dateLasts) { case types_1.DateLasts.LastMonth: result = { from: new Date(new Date(new Date().setDate(new Date().getDate() - 59)).setHours(0, 0, 0, 0)), to: new Date(new Date(new Date().setDate(new Date().getDate() - 29)).setHours(0, 0, 0, 0)), }; break; case types_1.DateLasts.LastWeek: result = { from: new Date(new Date(Date.now() - 604800000 * 2 + 86400000).setHours(0, 0, 0, 0)), to: new Date(new Date(Date.now() - 604800000 + 86400000).setHours(0, 0, 0, 0)), }; break; case types_1.DateLasts.LastYear: result = { from: new Date(new Date(new Date().setDate(new Date().getDate() - 729)).setHours(0, 0, 0, 0)), to: new Date(new Date(new Date().setDate(new Date().getDate() - 364)).setHours(0, 0, 0, 0)), }; break; } return result; } exports.convertDateLastsToComparedDateRange = convertDateLastsToComparedDateRange;