import { desktopBootstrapFromConnectClaims } from "./connect-link.mjs"; /** * @param {Partial} config * @param {(iconUrl: string) => Promise} applyBrandIconUrl */ export async function applyDesktopBootstrapBrandIcon(config, applyBrandIconUrl) { const iconUrl = typeof config.brandIconUrl === "string" ? config.brandIconUrl.trim() : ""; if (!iconUrl) return null; return applyBrandIconUrl(iconUrl); } /** * @param {import("@openwork/types/connect-link").ConnectLinkClaims} claims * @param {{ * persistBootstrap: ( * config: Partial * ) => Promise, * applyBrandIconUrl: (iconUrl: string) => Promise, * enterpriseActivation?: { activatedAt: string, denBaseUrl: string } | null, * }} dependencies */ export async function persistConnectLinkBranding(claims, dependencies) { const config = await dependencies.persistBootstrap({ ...desktopBootstrapFromConnectClaims(claims), ...(dependencies.enterpriseActivation ? { enterpriseActivation: dependencies.enterpriseActivation } : {}), }); await applyDesktopBootstrapBrandIcon(config, dependencies.applyBrandIconUrl); return config; }