mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-22 02:56:24 -07:00
feat(core): add Electron runtime, services, and app composition
This commit is contained in:
54
src/main/runtime/runtime-bootstrap-main-deps.ts
Normal file
54
src/main/runtime/runtime-bootstrap-main-deps.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import type { AnilistStateRuntimeDeps } from './anilist-state';
|
||||
import type { ConfigDerivedRuntimeDeps } from './config-derived';
|
||||
import type { ImmersionMediaRuntimeDeps } from './immersion-media';
|
||||
import type { MainSubsyncRuntimeDeps } from './subsync-runtime';
|
||||
|
||||
export function createBuildImmersionMediaRuntimeMainDepsHandler(deps: ImmersionMediaRuntimeDeps) {
|
||||
return (): ImmersionMediaRuntimeDeps => ({
|
||||
getResolvedConfig: () => deps.getResolvedConfig(),
|
||||
defaultImmersionDbPath: deps.defaultImmersionDbPath,
|
||||
getTracker: () => deps.getTracker(),
|
||||
getMpvClient: () => deps.getMpvClient(),
|
||||
getCurrentMediaPath: () => deps.getCurrentMediaPath(),
|
||||
getCurrentMediaTitle: () => deps.getCurrentMediaTitle(),
|
||||
sleep: deps.sleep,
|
||||
seedWaitMs: deps.seedWaitMs,
|
||||
seedAttempts: deps.seedAttempts,
|
||||
logDebug: (message: string) => deps.logDebug(message),
|
||||
logInfo: (message: string) => deps.logInfo(message),
|
||||
});
|
||||
}
|
||||
|
||||
export function createBuildAnilistStateRuntimeMainDepsHandler(deps: AnilistStateRuntimeDeps) {
|
||||
return (): AnilistStateRuntimeDeps => ({
|
||||
getClientSecretState: () => deps.getClientSecretState(),
|
||||
setClientSecretState: (next) => deps.setClientSecretState(next),
|
||||
getRetryQueueState: () => deps.getRetryQueueState(),
|
||||
setRetryQueueState: (next) => deps.setRetryQueueState(next),
|
||||
getUpdateQueueSnapshot: () => deps.getUpdateQueueSnapshot(),
|
||||
clearStoredToken: () => deps.clearStoredToken(),
|
||||
clearCachedAccessToken: () => deps.clearCachedAccessToken(),
|
||||
});
|
||||
}
|
||||
|
||||
export function createBuildConfigDerivedRuntimeMainDepsHandler(deps: ConfigDerivedRuntimeDeps) {
|
||||
return (): ConfigDerivedRuntimeDeps => ({
|
||||
getResolvedConfig: () => deps.getResolvedConfig(),
|
||||
getRuntimeOptionsManager: () => deps.getRuntimeOptionsManager(),
|
||||
platform: deps.platform,
|
||||
defaultJimakuLanguagePreference: deps.defaultJimakuLanguagePreference,
|
||||
defaultJimakuMaxEntryResults: deps.defaultJimakuMaxEntryResults,
|
||||
defaultJimakuApiBaseUrl: deps.defaultJimakuApiBaseUrl,
|
||||
});
|
||||
}
|
||||
|
||||
export function createBuildMainSubsyncRuntimeMainDepsHandler(deps: MainSubsyncRuntimeDeps) {
|
||||
return (): MainSubsyncRuntimeDeps => ({
|
||||
getMpvClient: () => deps.getMpvClient(),
|
||||
getResolvedConfig: () => deps.getResolvedConfig(),
|
||||
getSubsyncInProgress: () => deps.getSubsyncInProgress(),
|
||||
setSubsyncInProgress: (inProgress: boolean) => deps.setSubsyncInProgress(inProgress),
|
||||
showMpvOsd: (text: string) => deps.showMpvOsd(text),
|
||||
openManualPicker: (payload) => deps.openManualPicker(payload),
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user