feat(core): add Electron runtime, services, and app composition

This commit is contained in:
2026-02-22 21:43:43 -08:00
parent 448ce03fd4
commit d3fd47f0ec
562 changed files with 69719 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import type { CliArgs } from '../../cli/args';
type JellyfinRemoteSession = {
advertiseNow: () => Promise<boolean>;
};
export function createHandleJellyfinRemoteAnnounceCommand(deps: {
startJellyfinRemoteSession: () => Promise<void>;
getRemoteSession: () => JellyfinRemoteSession | null;
logInfo: (message: string) => void;
logWarn: (message: string) => void;
}) {
return async (args: CliArgs): Promise<boolean> => {
if (!args.jellyfinRemoteAnnounce) {
return false;
}
await deps.startJellyfinRemoteSession();
const remoteSession = deps.getRemoteSession();
if (!remoteSession) {
deps.logWarn('Jellyfin remote session is not available.');
return true;
}
const visible = await remoteSession.advertiseNow();
if (visible) {
deps.logInfo('Jellyfin cast target is visible in server sessions.');
} else {
deps.logWarn(
'Jellyfin remote announce sent, but cast target is not visible in server sessions yet.',
);
}
return true;
};
}