UNPKG

@sidequest/dashboard

Version:

@sidequest/dashboard is the web dashboard for Sidequest, a distributed background job queue system.

50 lines (47 loc) 1.58 kB
import { Router } from 'express'; function createDashboardRouter(backend) { const dashboardRouter = Router(); function rangeToMs(range) { let rangeMs; switch (range) { case "12h": rangeMs = 12 * 60 * 60 * 1000; break; case "12d": rangeMs = 12 * 24 * 60 * 60 * 1000; break; case "12m": default: // Defaults to 12m rangeMs = 12 * 60 * 1000; break; } return rangeMs; } dashboardRouter.get("/", async (req, res) => { const { range = "12m" } = req.query; const from = new Date(Date.now() - rangeToMs(range)); const jobs = await backend.countJobs({ from }); res.render("pages/index", { title: "Sidequest Dashboard", stats: jobs, }); }); dashboardRouter.get("/dashboard/stats", async (req, res) => { const { range = "12m" } = req.query; const from = new Date(Date.now() - rangeToMs(range)); const jobs = await backend.countJobs({ from }); res.render("partials/dashboard-stats", { stats: jobs, layout: false, }); }); dashboardRouter.get("/dashboard/graph-data", async (req, res) => { const { range = "12m" } = req.query; const jobs = await backend.countJobsOverTime(range); res.json(jobs).end(); }); return ["/", dashboardRouter]; } export { createDashboardRouter }; //# sourceMappingURL=dashboard.js.map