Ctrl K
ComunidadGuías…

electron/companion-e2e-desktop.mjs

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { companionState, postCompanionMessage, setCompanionE2EHooks } from "./companion.mjs";
import { COMPANION_INSTALLATION_CREDENTIAL_FIELD, resolveCompanionControlPlaneURL } from "./companion-account-service.mjs";
import { createCompanionE2E } from "./companion-e2e.mjs";
export { deviceCounts } from "./companion-e2e.mjs";
import { createControlPlaneClient } from "./control-plane-client.mjs";

const signedOut = () => Promise.reject(Object.assign(new Error("signed out"), { code: "signed_out" }));

/** The desktop app's end-to-end connection, wired to its sidecar, its account and the power monitor. Dark in a
 * development build unless OMB_CONTROL_PLANE_URL names a control plane. */
export function createDesktopCompanionE2E({ isPackaged, appVersion, readCredentials, updateCredentials, powerMonitor, log, onState }) {
  let client = null;
  try {
    const baseURL = resolveCompanionControlPlaneURL({ isPackaged });
    client = baseURL ? createControlPlaneClient({ baseURL }) : null;
  } catch {
    client = null;
  }
  const e2e = createCompanionE2E({
    readCredentials,
    updateCredentials,
    fetchGrant: (devices) => {
      const credential = readCredentials()?.[COMPANION_INSTALLATION_CREDENTIAL_FIELD];
      return client && credential ? client.relayToken(credential, { appVersion, devices }) : signedOut();
    },
    companionState,
    post: postCompanionMessage,
    log,
    onState,
  });
  setCompanionE2EHooks({ initialMessage: () => e2e.message(), tokenRejected: e2e.tokenRejected, changed: () => void e2e.reconcile() });
  powerMonitor?.on("resume", () => e2e.resumed());
  return e2e;
}