Kuma/server/util/heartbeat-range.js
2025-06-14 12:10:00 +02:00

44 lines
No EOL
1 KiB
JavaScript

/**
* Utility functions for heartbeat range handling
*/
/**
* Parse heartbeat range string and return hours
* @param {string} range - Range string like "6h", "7d", "auto"
* @returns {number|null} Hours or null for auto
*/
function parseRangeHours(range) {
if (!range || range === "auto") {
return null;
}
if (range.endsWith("h")) {
return parseInt(range);
} else if (range.endsWith("d")) {
return parseInt(range) * 24;
}
// Fallback
return 90 * 24;
}
/**
* Convert range to database-compatible date string
* @param {string} range - Range string like "6h", "7d", "auto"
* @returns {string|null} Date string or null for auto
*/
function rangeToDatabaseDate(range) {
const hours = parseRangeHours(range);
if (hours === null) {
return null;
}
const date = new Date();
date.setHours(date.getHours() - hours);
return date.toISOString().slice(0, 19).replace('T', ' ');
}
module.exports = {
parseRangeHours,
rangeToDatabaseDate
};