diff --git a/server/src/domain/monitors/monitor.service.ts b/server/src/domain/monitors/monitor.service.ts index 6cf9af54b..33b8413db 100644 --- a/server/src/domain/monitors/monitor.service.ts +++ b/server/src/domain/monitors/monitor.service.ts @@ -9,7 +9,7 @@ import type { GroupedGeoCheckResult, } from "@/domain/monitors/monitor.type.js"; import { supportsGeoCheck, supportsUptimeDetails } from "@/domain/monitors/monitor.type.js"; -import type { UptimeChecksResult, HardwareChecksResult, PageSpeedChecksResult } from "@/domain/checks/check.type.js"; +import type { UptimeChecksResult, HardwareChecksResult, PageSpeedChecksResult, DockerChecksResult } from "@/domain/checks/check.type.js"; import type { GeoContinent } from "@/domain/geo-checks/geo-check.type.js"; import type { IChecksRepository } from "@/domain/checks/check.repository.interface.js"; import type { IGeoChecksRepository } from "@/domain/geo-checks/geo-check.repository.interface.js"; @@ -26,8 +26,9 @@ import { DateRange } from "@/types/query.js"; const SERVICE_NAME = "MonitorService"; -const isUptimeChecksResult = (result: UptimeChecksResult | HardwareChecksResult | PageSpeedChecksResult): result is UptimeChecksResult => - supportsUptimeDetails(result.monitorType); +const isUptimeChecksResult = ( + result: UptimeChecksResult | HardwareChecksResult | PageSpeedChecksResult | DockerChecksResult +): result is UptimeChecksResult => supportsUptimeDetails(result.monitorType); export interface IMonitorService { // create diff --git a/server/src/domain/monitors/monitor.type.ts b/server/src/domain/monitors/monitor.type.ts index 1767ba17f..e33f89c5c 100644 --- a/server/src/domain/monitors/monitor.type.ts +++ b/server/src/domain/monitors/monitor.type.ts @@ -1,9 +1,10 @@ -import type { CheckSnapshot } from "@/domain/checks/check.type.js"; +import type { CheckSnapshot, DockerStats } from "@/domain/checks/check.type.js"; export type { CheckSnapshot } from "@/domain/checks/check.type.js"; import type { GeoContinent, GroupedGeoCheck } from "@/domain/geo-checks/geo-check.type.js"; export type { GeoContinent } from "@/domain/geo-checks/geo-check.type.js"; import http from "node:http"; import { HardwareStats } from "@/domain/checks/check.type.js"; +import { MonitorStats } from "@/domain/monitor-stats/monitor-stats.type.js"; export const HttpStatusCodes = [ ...Object.keys(http.STATUS_CODES).map(Number), @@ -44,16 +45,7 @@ export const supportsGeoCheck = (type: MonitorType): boolean => GeoCheckSupporte export const ProxyModes = ["inherit", "none", "custom"] as const; export type ProxyMode = (typeof ProxyModes)[number]; -export const UptimeDetailsSupportedTypes = [ - "http", - "ping", - "docker", - "port", - "game", - "grpc", - "websocket", - "dns", -] as const satisfies readonly MonitorType[]; +export const UptimeDetailsSupportedTypes = ["http", "ping", "port", "game", "grpc", "websocket", "dns"] as const satisfies readonly MonitorType[]; export type UptimeDetailsSupportedType = (typeof UptimeDetailsSupportedTypes)[number]; export const supportsUptimeDetails = (type: MonitorType): type is UptimeDetailsSupportedType => UptimeDetailsSupportedTypes.some((t) => t === type); @@ -162,6 +154,12 @@ export interface HardwareDetailsResult { monitorStats: import("../monitor-stats/monitor-stats.type.js").MonitorStats | null; } +export interface DockerDetailsResult { + monitor: Monitor; + stats: DockerStats; + monitorStats: MonitorStats | null; +} + export interface PageSpeedDetailsResult { monitorData: { monitor: Monitor;