Files
musicland/functions/helpers/stats.js
T
Thomas Demirdjian 7b3a47090d functions
2025-11-03 13:47:07 +01:00

38 lines
1.0 KiB
JavaScript

const normalizeDate = (input) =>
typeof input?.toDate === "function" ? input.toDate() : new Date(input);
const buildMonthKey = (timestamp) => {
const date = normalizeDate(timestamp);
const year = date.getUTCFullYear();
const month = String(date.getUTCMonth() + 1).padStart(2, "0");
return `${year}-${month}`;
};
const buildPreviousMonthContext = (referenceDate) => {
const current = referenceDate ? new Date(referenceDate) : new Date();
current.setUTCHours(0, 0, 0, 0);
current.setUTCDate(1);
const target = new Date(current);
target.setUTCMonth(target.getUTCMonth() - 1);
const year = target.getUTCFullYear();
const monthIndex = target.getUTCMonth();
const rangeStart = new Date(Date.UTC(year, monthIndex, 1, 0, 0, 0, 0));
const rangeEnd = new Date(Date.UTC(year, monthIndex + 1, 0, 23, 59, 59, 999));
const monthKey = buildMonthKey(rangeStart);
return {
year,
month: monthIndex + 1,
monthKey,
rangeStart,
rangeEnd,
};
};
module.exports = {
buildMonthKey,
buildPreviousMonthContext,
};