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,31 @@
import type {
createLaunchBackgroundWarmupTaskHandler,
createStartBackgroundWarmupsHandler,
} from './startup-warmups';
type LaunchBackgroundWarmupTaskMainDeps = Parameters<typeof createLaunchBackgroundWarmupTaskHandler>[0];
type StartBackgroundWarmupsMainDeps = Parameters<typeof createStartBackgroundWarmupsHandler>[0];
export function createBuildLaunchBackgroundWarmupTaskMainDepsHandler(
deps: LaunchBackgroundWarmupTaskMainDeps,
) {
return (): LaunchBackgroundWarmupTaskMainDeps => ({
now: () => deps.now(),
logDebug: (message: string) => deps.logDebug(message),
logWarn: (message: string) => deps.logWarn(message),
});
}
export function createBuildStartBackgroundWarmupsMainDepsHandler(deps: StartBackgroundWarmupsMainDeps) {
return (): StartBackgroundWarmupsMainDeps => ({
getStarted: () => deps.getStarted(),
setStarted: (started: boolean) => deps.setStarted(started),
isTexthookerOnlyMode: () => deps.isTexthookerOnlyMode(),
launchTask: (label: string, task: () => Promise<void>) => deps.launchTask(label, task),
createMecabTokenizerAndCheck: () => deps.createMecabTokenizerAndCheck(),
ensureYomitanExtensionLoaded: () => deps.ensureYomitanExtensionLoaded(),
prewarmSubtitleDictionaries: () => deps.prewarmSubtitleDictionaries(),
shouldAutoConnectJellyfinRemote: () => deps.shouldAutoConnectJellyfinRemote(),
startJellyfinRemoteSession: () => deps.startJellyfinRemoteSession(),
});
}