From 5cf9b1b752028d69b025fb379262c71c8d98a5af Mon Sep 17 00:00:00 2001 From: Thomas Camlong Date: Mon, 8 Jun 2026 15:50:55 +0200 Subject: [PATCH] refactor(beszel): deduplicate BeszelSystemRow type definition Consolidate BeszelSystemRow into @homarr/integrations as the single source of truth. Both request-handler and widgets now re-export from there instead of maintaining separate identical copies that could silently diverge. --- .../integrations/src/beszel/beszel-types.ts | 22 +++++++++++++++++ packages/request-handler/src/beszel.ts | 23 ++---------------- packages/widgets/src/beszel/_shared/types.ts | 24 +------------------ 3 files changed, 25 insertions(+), 44 deletions(-) diff --git a/packages/integrations/src/beszel/beszel-types.ts b/packages/integrations/src/beszel/beszel-types.ts index ed77f3fec..95b551416 100644 --- a/packages/integrations/src/beszel/beszel-types.ts +++ b/packages/integrations/src/beszel/beszel-types.ts @@ -242,3 +242,25 @@ export interface PocketBaseListResponse { totalPages: number; items: T[]; } + +export interface BeszelSystemRow { + id: string; + name: string; + status: BeszelSystemStatus; + cpu: number; + memory: number; + disk: number; + gpu: number; + loadAvg: [number, number, number] | null; + netBytes: number; + temp: number | null; + battery: [number, number] | null; + services: number; + uptime: number; + agentVersion: string; + hostname: string; + cpuModel: string; + cores: number; + memoryTotal: number; + osName: string; +} diff --git a/packages/request-handler/src/beszel.ts b/packages/request-handler/src/beszel.ts index 9af2a9a53..3e6ca63d9 100644 --- a/packages/request-handler/src/beszel.ts +++ b/packages/request-handler/src/beszel.ts @@ -7,32 +7,13 @@ import type { BeszelContainerStatsRecord, BeszelSystem, BeszelSystemDetails, + BeszelSystemRow, BeszelSystemStatsRecord, } from "@homarr/integrations/types"; import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler"; -export interface BeszelSystemRow { - id: string; - name: string; - status: "up" | "down" | "paused" | "pending"; - cpu: number; - memory: number; - disk: number; - gpu: number; - loadAvg: [number, number, number] | null; - netBytes: number; - temp: number | null; - battery: [number, number] | null; - services: number; - uptime: number; - agentVersion: string; - hostname: string; - cpuModel: string; - cores: number; - memoryTotal: number; - osName: string; -} +export type { BeszelSystemRow } from "@homarr/integrations/types"; function mapToSystemRow(system: BeszelSystem, details: BeszelSystemDetails | null): BeszelSystemRow { const info = system.info; diff --git a/packages/widgets/src/beszel/_shared/types.ts b/packages/widgets/src/beszel/_shared/types.ts index 43796fc38..664bf7e91 100644 --- a/packages/widgets/src/beszel/_shared/types.ts +++ b/packages/widgets/src/beszel/_shared/types.ts @@ -1,23 +1 @@ -export type BeszelSystemStatus = "up" | "down" | "paused" | "pending"; - -export interface BeszelSystemRow { - id: string; - name: string; - status: BeszelSystemStatus; - cpu: number; - memory: number; - disk: number; - gpu: number; - loadAvg: [number, number, number] | null; - netBytes: number; - temp: number | null; - battery: [number, number] | null; - services: number; - uptime: number; - agentVersion: string; - hostname: string; - cpuModel: string; - cores: number; - memoryTotal: number; - osName: string; -} +export type { BeszelSystemRow, BeszelSystemStatus } from "@homarr/integrations/types";