UNPKG

@rsc-labs/medusa-store-analytics-v2

Version:
106 lines (105 loc) 3.69 kB
import { DateLasts } from "./types.js"; function amountToDisplay(amount, decimalDigits) { return (amount / Math.pow(10, decimalDigits)).toFixed(decimalDigits); } function calculatePercentage(current, previous) { if (current == previous) { return 0; } if (current == 0) { return 100; } if (previous == 0) { return void 0; } 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; } function convertDateLastsToDateRange(dateLasts) { let result; switch (dateLasts) { case DateLasts.LastMonth: result = { // 86400000 - alignment for taking last 29 days, as the current day is 30 from: new Date(new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() - 29)).setHours(0, 0, 0, 0)), to: new Date(Date.now()) }; break; case 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() - 6048e5 + 864e5)).setHours(0, 0, 0, 0)), to: new Date(Date.now()) }; break; case DateLasts.LastYear: new Date((/* @__PURE__ */ new Date()).setFullYear((/* @__PURE__ */ new Date()).getFullYear() - 1)); result = { // + 1 - alignment for taking last 11 months, as the current month is 12th from: new Date(new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() - 364)).setHours(0, 0, 0, 0)), to: new Date(Date.now()) }; break; } return result; } function convertDateLastsToComparedDateRange(dateLasts) { let result; switch (dateLasts) { case DateLasts.LastMonth: result = { from: new Date(new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() - 59)).setHours(0, 0, 0, 0)), to: new Date(new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() - 29)).setHours(0, 0, 0, 0)) }; break; case DateLasts.LastWeek: result = { from: new Date(new Date(Date.now() - 6048e5 * 2 + 864e5).setHours(0, 0, 0, 0)), to: new Date(new Date(Date.now() - 6048e5 + 864e5).setHours(0, 0, 0, 0)) }; break; case DateLasts.LastYear: result = { from: new Date(new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() - 729)).setHours(0, 0, 0, 0)), to: new Date(new Date((/* @__PURE__ */ new Date()).setDate((/* @__PURE__ */ new Date()).getDate() - 364)).setHours(0, 0, 0, 0)) }; break; } return result; } function deduceDateUrlParams(dateRange, dateRangeCompareTo, orderStatuses) { let dateRangeParams = {}; let dateRangeCompareToParams = {}; if (dateRange) { dateRangeParams = { dateRangeFrom: dateRange.from.getTime().toString(), dateRangeTo: dateRange.to.getTime().toString() }; } if (dateRangeCompareTo) { dateRangeCompareToParams = { dateRangeFromCompareTo: dateRangeCompareTo.from.getTime().toString(), dateRangeToCompareTo: dateRangeCompareTo.to.getTime().toString() }; } const result = new URLSearchParams({ ...dateRangeParams, ...dateRangeCompareToParams }); if (orderStatuses) { for (const orderStatus of orderStatuses) { result.append("orderStatuses", orderStatus.toString()); } } return result; } export { amountToDisplay, calculatePercentage, convertDateLastsToComparedDateRange, convertDateLastsToDateRange, deduceDateUrlParams };