mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-13 20:12:54 -07:00
feat(core): add Electron runtime, services, and app composition
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
export function createBuildMpvClientRuntimeServiceFactoryDepsHandler<
|
||||
TClient,
|
||||
TResolvedConfig,
|
||||
TOptions,
|
||||
>(deps: {
|
||||
createClient: new (socketPath: string, options: TOptions) => TClient;
|
||||
getSocketPath: () => string;
|
||||
getResolvedConfig: () => TResolvedConfig;
|
||||
isAutoStartOverlayEnabled: () => boolean;
|
||||
setOverlayVisible: (visible: boolean) => void;
|
||||
shouldBindVisibleOverlayToMpvSubVisibility: () => boolean;
|
||||
isVisibleOverlayVisible: () => boolean;
|
||||
getReconnectTimer: () => ReturnType<typeof setTimeout> | null;
|
||||
setReconnectTimer: (timer: ReturnType<typeof setTimeout> | null) => void;
|
||||
bindEventHandlers: (client: TClient) => void;
|
||||
}) {
|
||||
return () => ({
|
||||
createClient: deps.createClient,
|
||||
socketPath: deps.getSocketPath(),
|
||||
options: {
|
||||
getResolvedConfig: () => deps.getResolvedConfig(),
|
||||
autoStartOverlay: deps.isAutoStartOverlayEnabled(),
|
||||
setOverlayVisible: (visible: boolean) => deps.setOverlayVisible(visible),
|
||||
shouldBindVisibleOverlayToMpvSubVisibility: () =>
|
||||
deps.shouldBindVisibleOverlayToMpvSubVisibility(),
|
||||
isVisibleOverlayVisible: () => deps.isVisibleOverlayVisible(),
|
||||
getReconnectTimer: () => deps.getReconnectTimer(),
|
||||
setReconnectTimer: (timer: ReturnType<typeof setTimeout> | null) => deps.setReconnectTimer(timer),
|
||||
},
|
||||
bindEventHandlers: (client: TClient) => deps.bindEventHandlers(client),
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user