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,72 @@
import type {
createGetAnilistMediaGuessRuntimeStateHandler,
createGetCurrentAnilistMediaKeyHandler,
createResetAnilistMediaGuessStateHandler,
createResetAnilistMediaTrackingHandler,
createSetAnilistMediaGuessRuntimeStateHandler,
} from './anilist-media-state';
type GetCurrentAnilistMediaKeyMainDeps = Parameters<typeof createGetCurrentAnilistMediaKeyHandler>[0];
type ResetAnilistMediaTrackingMainDeps = Parameters<typeof createResetAnilistMediaTrackingHandler>[0];
type GetAnilistMediaGuessRuntimeStateMainDeps = Parameters<
typeof createGetAnilistMediaGuessRuntimeStateHandler
>[0];
type SetAnilistMediaGuessRuntimeStateMainDeps = Parameters<
typeof createSetAnilistMediaGuessRuntimeStateHandler
>[0];
type ResetAnilistMediaGuessStateMainDeps = Parameters<
typeof createResetAnilistMediaGuessStateHandler
>[0];
export function createBuildGetCurrentAnilistMediaKeyMainDepsHandler(
deps: GetCurrentAnilistMediaKeyMainDeps,
) {
return (): GetCurrentAnilistMediaKeyMainDeps => ({
getCurrentMediaPath: () => deps.getCurrentMediaPath(),
});
}
export function createBuildResetAnilistMediaTrackingMainDepsHandler(
deps: ResetAnilistMediaTrackingMainDeps,
) {
return (): ResetAnilistMediaTrackingMainDeps => ({
setMediaKey: (value) => deps.setMediaKey(value),
setMediaDurationSec: (value) => deps.setMediaDurationSec(value),
setMediaGuess: (value) => deps.setMediaGuess(value),
setMediaGuessPromise: (value) => deps.setMediaGuessPromise(value),
setLastDurationProbeAtMs: (value: number) => deps.setLastDurationProbeAtMs(value),
});
}
export function createBuildGetAnilistMediaGuessRuntimeStateMainDepsHandler(
deps: GetAnilistMediaGuessRuntimeStateMainDeps,
) {
return (): GetAnilistMediaGuessRuntimeStateMainDeps => ({
getMediaKey: () => deps.getMediaKey(),
getMediaDurationSec: () => deps.getMediaDurationSec(),
getMediaGuess: () => deps.getMediaGuess(),
getMediaGuessPromise: () => deps.getMediaGuessPromise(),
getLastDurationProbeAtMs: () => deps.getLastDurationProbeAtMs(),
});
}
export function createBuildSetAnilistMediaGuessRuntimeStateMainDepsHandler(
deps: SetAnilistMediaGuessRuntimeStateMainDeps,
) {
return (): SetAnilistMediaGuessRuntimeStateMainDeps => ({
setMediaKey: (value) => deps.setMediaKey(value),
setMediaDurationSec: (value) => deps.setMediaDurationSec(value),
setMediaGuess: (value) => deps.setMediaGuess(value),
setMediaGuessPromise: (value) => deps.setMediaGuessPromise(value),
setLastDurationProbeAtMs: (value: number) => deps.setLastDurationProbeAtMs(value),
});
}
export function createBuildResetAnilistMediaGuessStateMainDepsHandler(
deps: ResetAnilistMediaGuessStateMainDeps,
) {
return (): ResetAnilistMediaGuessStateMainDeps => ({
setMediaGuess: (value) => deps.setMediaGuess(value),
setMediaGuessPromise: (value) => deps.setMediaGuessPromise(value),
});
}