diff --git a/src/routes/monitor-[tag]/+page.server.js b/src/routes/monitor-[tag]/+page.server.js new file mode 100644 index 0000000..cae69be --- /dev/null +++ b/src/routes/monitor-[tag]/+page.server.js @@ -0,0 +1,31 @@ +// @ts-nocheck +import { GetIncidents, Mapper } from "../../../scripts/github.js"; +import { FetchData } from "$lib/server/page"; +import { env } from "$env/dynamic/public"; +import fs from "fs-extra"; + +export async function load({ params, route, url, parent }) { + let monitors = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + '/monitors.json', "utf8")); + const parentData = await parent(); + const siteData = parentData.site; + const github = siteData.github; + const monitorsActive = []; + for (let i = 0; i < monitors.length; i++) { + + //only return monitors that have category as home or category is not present + if (monitors[i].tag !== params.tag) { + continue; + } + const gitHubActiveIssues = await GetIncidents(monitors[i].tag, github, "open"); + delete monitors[i].api; + delete monitors[i].defaultStatus; + let data = await FetchData(monitors[i], parentData.localTz); + monitors[i].pageData = data; + monitors[i].activeIncidents = await Promise.all(gitHubActiveIssues.map(Mapper, { github })); + monitorsActive.push(monitors[i]); + } + + return { + monitors: monitorsActive, + }; +} diff --git a/src/routes/monitor-[tag]/+page.svelte b/src/routes/monitor-[tag]/+page.svelte new file mode 100644 index 0000000..37d21a2 --- /dev/null +++ b/src/routes/monitor-[tag]/+page.svelte @@ -0,0 +1,76 @@ + +
+{#if hasActiveIncidents} ++ Please read the documentation on how to add monitors + here. +
+