JSRealm

Runtime Status

Status page - Show server uptime in human-readable format

// Status page - Show server uptime in human-readable format
var app = new App();

function formatUptime(ms) {
    var seconds = Math.floor(ms / 1000);
    var minutes = Math.floor(seconds / 60);
    var hours = Math.floor(minutes / 60);
    var days = Math.floor(hours / 24);

    seconds = seconds % 60;
    minutes = minutes % 60;
    hours = hours % 24;

    var parts = [];
    if (days > 0) parts.push(days + (days === 1 ? " day" : " days"));
    if (hours > 0) parts.push(hours + (hours === 1 ? " hour" : " hours"));
    if (minutes > 0) parts.push(minutes + (minutes === 1 ? " minute" : " minutes"));
    if (seconds > 0 || parts.length === 0) parts.push(seconds + (seconds === 1 ? " second" : " seconds"));

    return parts.join(", ");
}

app.get('/status', (req) => {
    return Response.json({ uptime: formatUptime(jsrealm.uptime) });
});

export default app;