From 887845418efa8bd6bb1fcb6eff8111c3ba557ac3 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Mon, 6 Jul 2026 16:38:50 +0200 Subject: [PATCH] refactor(desktop): share daemon pid lock reader --- packages/desktop/src/daemon/daemon-manager.ts | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/desktop/src/daemon/daemon-manager.ts b/packages/desktop/src/daemon/daemon-manager.ts index 44456d4348..9e698ccdc3 100644 --- a/packages/desktop/src/daemon/daemon-manager.ts +++ b/packages/desktop/src/daemon/daemon-manager.ts @@ -138,27 +138,27 @@ function deriveDesktopManagedFromPidLock(lock: Record): boolean return lock.desktopManaged === true; } -function readDesktopManagedFromPidLock(): boolean { +function readPidLockRecord(): Record | null { try { const raw = readFileSync(path.join(getPaseoHome(), "paseo.pid"), "utf-8"); const lock = JSON.parse(raw) as unknown; - return isRecord(lock) && deriveDesktopManagedFromPidLock(lock); + return isRecord(lock) ? lock : null; } catch { - return false; + return null; } } +function readDesktopManagedFromPidLock(): boolean { + const lock = readPidLockRecord(); + return lock !== null && deriveDesktopManagedFromPidLock(lock); +} + export function isDesktopManagedDaemonRunningSync(): boolean { - try { - const raw = readFileSync(path.join(getPaseoHome(), "paseo.pid"), "utf-8"); - const lock = JSON.parse(raw) as unknown; - if (!isRecord(lock)) return false; - if (!deriveDesktopManagedFromPidLock(lock)) return false; - if (typeof lock.pid !== "number" || !Number.isInteger(lock.pid)) return false; - return isProcessRunning(lock.pid); - } catch { - return false; - } + const lock = readPidLockRecord(); + if (lock === null) return false; + if (!deriveDesktopManagedFromPidLock(lock)) return false; + if (typeof lock.pid !== "number" || !Number.isInteger(lock.pid)) return false; + return isProcessRunning(lock.pid); } function summarizeDesktopDaemonStatus(status: DesktopDaemonStatus): Record {