22 lines · 903 B · TypeScript
RawDownload
/* oxlint-disable executor/no-try-catch-or-throw -- boundary: Electron startup must convert service-install failures into a fresh daemon probe */import type { SidecarConnection } from "./sidecar"; export interface ReplaceSupervisedDaemonInput {  readonly install: () => Promise<void>;  readonly waitForAttach: () => Promise<SidecarConnection | null>;  readonly attach: () => Promise<SidecarConnection | null>;  readonly onInstallFailure?: (error: unknown, staleConnection: SidecarConnection) => void;} export const replaceSupervisedDaemonForDesktop = async (  staleConnection: SidecarConnection,  input: ReplaceSupervisedDaemonInput,): Promise<SidecarConnection | null> => {  try {    await input.install();    return (await input.waitForAttach()) ?? (await input.attach());  } catch (error) {    input.onInstallFailure?.(error, staleConnection);    return await input.attach();  }};

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t