mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-11-10 16:46:06 -08:00
refactor(runtime): remove dead symbols from composition roots
This commit is contained in:
6 files changed
+17
-151
No files matched your search
@@ -1,5 +1,4 @@
|
|||||||
import fs from 'node:fs';
|
import fs from 'node:fs';
|
||||||
import path from 'node:path';
|
|
||||||
import { fail, log } from '../log.js';
|
import { fail, log } from '../log.js';
|
||||||
import { commandExists, isYoutubeTarget, realpathMaybe, resolvePathMaybe } from '../util.js';
|
import { commandExists, isYoutubeTarget, realpathMaybe, resolvePathMaybe } from '../util.js';
|
||||||
import { collectVideos, showFzfMenu, showRofiMenu } from '../picker.js';
|
import { collectVideos, showFzfMenu, showRofiMenu } from '../picker.js';
|
||||||
|
|||||||
@@ -458,14 +458,6 @@ export class AnkiIntegration {
|
|||||||
return this.config.nPlusOne?.highlightEnabled === true;
|
return this.config.nPlusOne?.highlightEnabled === true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private startKnownWordCacheLifecycle(): void {
|
|
||||||
this.knownWordCache.startLifecycle();
|
|
||||||
}
|
|
||||||
|
|
||||||
private stopKnownWordCacheLifecycle(): void {
|
|
||||||
this.knownWordCache.stopLifecycle();
|
|
||||||
}
|
|
||||||
|
|
||||||
private getConfiguredAnkiTags(): string[] {
|
private getConfiguredAnkiTags(): string[] {
|
||||||
if (!Array.isArray(this.config.tags)) {
|
if (!Array.isArray(this.config.tags)) {
|
||||||
return [];
|
return [];
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ export class FieldGroupingWorkflow {
|
|||||||
|
|
||||||
async handleManual(
|
async handleManual(
|
||||||
originalNoteId: number,
|
originalNoteId: number,
|
||||||
newNoteId: number,
|
_newNoteId: number,
|
||||||
newNoteInfo: FieldGroupingWorkflowNoteInfo,
|
newNoteInfo: FieldGroupingWorkflowNoteInfo,
|
||||||
): Promise<boolean> {
|
): Promise<boolean> {
|
||||||
const callback = await this.resolveFieldGroupingCallback();
|
const callback = await this.resolveFieldGroupingCallback();
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import {
|
|||||||
importYomitanDictionaryFromZip,
|
importYomitanDictionaryFromZip,
|
||||||
deleteYomitanDictionaryByTitle,
|
deleteYomitanDictionaryByTitle,
|
||||||
removeYomitanDictionarySettings,
|
removeYomitanDictionarySettings,
|
||||||
requestYomitanParseResults,
|
|
||||||
requestYomitanScanTokens,
|
requestYomitanScanTokens,
|
||||||
requestYomitanTermFrequencies,
|
requestYomitanTermFrequencies,
|
||||||
syncYomitanDefaultAnkiServer,
|
syncYomitanDefaultAnkiServer,
|
||||||
|
|||||||
+9
-136
@@ -92,8 +92,6 @@ import type {
|
|||||||
SecondarySubMode,
|
SecondarySubMode,
|
||||||
SubtitleData,
|
SubtitleData,
|
||||||
SubtitlePosition,
|
SubtitlePosition,
|
||||||
SubsyncManualRunRequest,
|
|
||||||
SubsyncResult,
|
|
||||||
WindowGeometry,
|
WindowGeometry,
|
||||||
} from './types';
|
} from './types';
|
||||||
import { AnkiIntegration } from './anki-integration';
|
import { AnkiIntegration } from './anki-integration';
|
||||||
@@ -116,36 +114,15 @@ import {
|
|||||||
failStartupFromConfig,
|
failStartupFromConfig,
|
||||||
} from './main/config-validation';
|
} from './main/config-validation';
|
||||||
import {
|
import {
|
||||||
buildAnilistAttemptKey,
|
|
||||||
buildAnilistSetupUrl,
|
buildAnilistSetupUrl,
|
||||||
consumeAnilistSetupCallbackUrl,
|
consumeAnilistSetupCallbackUrl,
|
||||||
createAnilistStateRuntime,
|
createAnilistStateRuntime,
|
||||||
createBuildGetAnilistMediaGuessRuntimeStateMainDepsHandler,
|
|
||||||
createBuildGetCurrentAnilistMediaKeyMainDepsHandler,
|
|
||||||
createBuildMaybeProbeAnilistDurationMainDepsHandler,
|
|
||||||
createBuildMaybeRunAnilistPostWatchUpdateMainDepsHandler,
|
|
||||||
createBuildOpenAnilistSetupWindowMainDepsHandler,
|
createBuildOpenAnilistSetupWindowMainDepsHandler,
|
||||||
createBuildProcessNextAnilistRetryUpdateMainDepsHandler,
|
|
||||||
createBuildRefreshAnilistClientSecretStateMainDepsHandler,
|
|
||||||
createBuildResetAnilistMediaGuessStateMainDepsHandler,
|
|
||||||
createBuildResetAnilistMediaTrackingMainDepsHandler,
|
|
||||||
createBuildSetAnilistMediaGuessRuntimeStateMainDepsHandler,
|
|
||||||
createEnsureAnilistMediaGuessHandler,
|
|
||||||
createGetAnilistMediaGuessRuntimeStateHandler,
|
|
||||||
createGetCurrentAnilistMediaKeyHandler,
|
|
||||||
createMaybeFocusExistingAnilistSetupWindowHandler,
|
createMaybeFocusExistingAnilistSetupWindowHandler,
|
||||||
createMaybeProbeAnilistDurationHandler,
|
|
||||||
createMaybeRunAnilistPostWatchUpdateHandler,
|
|
||||||
createOpenAnilistSetupWindowHandler,
|
createOpenAnilistSetupWindowHandler,
|
||||||
createProcessNextAnilistRetryUpdateHandler,
|
|
||||||
createRefreshAnilistClientSecretStateHandler,
|
|
||||||
createResetAnilistMediaGuessStateHandler,
|
|
||||||
createResetAnilistMediaTrackingHandler,
|
|
||||||
createSetAnilistMediaGuessRuntimeStateHandler,
|
|
||||||
findAnilistSetupDeepLinkArgvUrl,
|
findAnilistSetupDeepLinkArgvUrl,
|
||||||
isAnilistTrackingEnabled,
|
isAnilistTrackingEnabled,
|
||||||
loadAnilistManualTokenEntry,
|
loadAnilistManualTokenEntry,
|
||||||
loadAnilistSetupFallback,
|
|
||||||
openAnilistSetupInBrowser,
|
openAnilistSetupInBrowser,
|
||||||
rememberAnilistAttemptedUpdateKey,
|
rememberAnilistAttemptedUpdateKey,
|
||||||
} from './main/runtime/domains/anilist';
|
} from './main/runtime/domains/anilist';
|
||||||
@@ -153,50 +130,9 @@ import {
|
|||||||
createApplyJellyfinMpvDefaultsHandler,
|
createApplyJellyfinMpvDefaultsHandler,
|
||||||
createBuildApplyJellyfinMpvDefaultsMainDepsHandler,
|
createBuildApplyJellyfinMpvDefaultsMainDepsHandler,
|
||||||
createBuildGetDefaultSocketPathMainDepsHandler,
|
createBuildGetDefaultSocketPathMainDepsHandler,
|
||||||
createEnsureMpvConnectedForJellyfinPlaybackHandler,
|
|
||||||
createBuildEnsureMpvConnectedForJellyfinPlaybackMainDepsHandler,
|
|
||||||
createGetDefaultSocketPathHandler,
|
createGetDefaultSocketPathHandler,
|
||||||
createGetJellyfinClientInfoHandler,
|
|
||||||
createBuildGetJellyfinClientInfoMainDepsHandler,
|
|
||||||
createHandleJellyfinAuthCommands,
|
|
||||||
createBuildHandleJellyfinAuthCommandsMainDepsHandler,
|
|
||||||
createHandleJellyfinListCommands,
|
|
||||||
createBuildHandleJellyfinListCommandsMainDepsHandler,
|
|
||||||
createHandleJellyfinPlayCommand,
|
|
||||||
createBuildHandleJellyfinPlayCommandMainDepsHandler,
|
|
||||||
createHandleJellyfinRemoteAnnounceCommand,
|
|
||||||
createBuildHandleJellyfinRemoteAnnounceCommandMainDepsHandler,
|
|
||||||
createHandleJellyfinRemotePlay,
|
|
||||||
createBuildHandleJellyfinRemotePlayMainDepsHandler,
|
|
||||||
createHandleJellyfinRemotePlaystate,
|
|
||||||
createBuildHandleJellyfinRemotePlaystateMainDepsHandler,
|
|
||||||
createHandleJellyfinRemoteGeneralCommand,
|
|
||||||
createBuildHandleJellyfinRemoteGeneralCommandMainDepsHandler,
|
|
||||||
createLaunchMpvIdleForJellyfinPlaybackHandler,
|
|
||||||
createBuildLaunchMpvIdleForJellyfinPlaybackMainDepsHandler,
|
|
||||||
createPlayJellyfinItemInMpvHandler,
|
|
||||||
createBuildPlayJellyfinItemInMpvMainDepsHandler,
|
|
||||||
createPreloadJellyfinExternalSubtitlesHandler,
|
|
||||||
createBuildPreloadJellyfinExternalSubtitlesMainDepsHandler,
|
|
||||||
createReportJellyfinRemoteProgressHandler,
|
|
||||||
createBuildReportJellyfinRemoteProgressMainDepsHandler,
|
|
||||||
createReportJellyfinRemoteStoppedHandler,
|
|
||||||
createBuildReportJellyfinRemoteStoppedMainDepsHandler,
|
|
||||||
createStartJellyfinRemoteSessionHandler,
|
|
||||||
createBuildStartJellyfinRemoteSessionMainDepsHandler,
|
|
||||||
createStopJellyfinRemoteSessionHandler,
|
|
||||||
createBuildStopJellyfinRemoteSessionMainDepsHandler,
|
|
||||||
createRunJellyfinCommandHandler,
|
|
||||||
createBuildRunJellyfinCommandMainDepsHandler,
|
|
||||||
createWaitForMpvConnectedHandler,
|
|
||||||
createBuildWaitForMpvConnectedMainDepsHandler,
|
|
||||||
createOpenJellyfinSetupWindowHandler,
|
|
||||||
createBuildOpenJellyfinSetupWindowMainDepsHandler,
|
|
||||||
createGetResolvedJellyfinConfigHandler,
|
|
||||||
createBuildGetResolvedJellyfinConfigMainDepsHandler,
|
|
||||||
parseJellyfinSetupSubmissionUrl,
|
|
||||||
buildJellyfinSetupFormHtml,
|
buildJellyfinSetupFormHtml,
|
||||||
createMaybeFocusExistingJellyfinSetupWindowHandler,
|
parseJellyfinSetupSubmissionUrl,
|
||||||
} from './main/runtime/domains/jellyfin';
|
} from './main/runtime/domains/jellyfin';
|
||||||
import type { ActiveJellyfinRemotePlaybackState } from './main/runtime/domains/jellyfin';
|
import type { ActiveJellyfinRemotePlaybackState } from './main/runtime/domains/jellyfin';
|
||||||
import { getConfiguredJellyfinSession } from './main/runtime/domains/jellyfin';
|
import { getConfiguredJellyfinSession } from './main/runtime/domains/jellyfin';
|
||||||
@@ -226,7 +162,6 @@ import {
|
|||||||
createBuildEnsureOverlayWindowLevelMainDepsHandler,
|
createBuildEnsureOverlayWindowLevelMainDepsHandler,
|
||||||
createBuildUpdateVisibleOverlayBoundsMainDepsHandler,
|
createBuildUpdateVisibleOverlayBoundsMainDepsHandler,
|
||||||
createOverlayWindowRuntimeHandlers,
|
createOverlayWindowRuntimeHandlers,
|
||||||
createOverlayRuntimeBootstrapHandlers,
|
|
||||||
createTrayRuntimeHandlers,
|
createTrayRuntimeHandlers,
|
||||||
createOverlayVisibilityRuntime,
|
createOverlayVisibilityRuntime,
|
||||||
createBroadcastRuntimeOptionsChangedHandler,
|
createBroadcastRuntimeOptionsChangedHandler,
|
||||||
@@ -268,25 +203,11 @@ import {
|
|||||||
createConfigDerivedRuntime,
|
createConfigDerivedRuntime,
|
||||||
appendClipboardVideoToQueueRuntime,
|
appendClipboardVideoToQueueRuntime,
|
||||||
createMainSubsyncRuntime,
|
createMainSubsyncRuntime,
|
||||||
createLaunchBackgroundWarmupTaskHandler,
|
|
||||||
createStartBackgroundWarmupsHandler,
|
|
||||||
createBuildLaunchBackgroundWarmupTaskMainDepsHandler,
|
|
||||||
createBuildStartBackgroundWarmupsMainDepsHandler,
|
|
||||||
} from './main/runtime/domains/startup';
|
} from './main/runtime/domains/startup';
|
||||||
import {
|
import {
|
||||||
createBuildBindMpvMainEventHandlersMainDepsHandler,
|
|
||||||
createBuildMpvClientRuntimeServiceFactoryDepsHandler,
|
|
||||||
createMpvClientRuntimeServiceFactory,
|
|
||||||
createBindMpvMainEventHandlersHandler,
|
|
||||||
createBuildTokenizerDepsMainHandler,
|
|
||||||
createCreateMecabTokenizerAndCheckMainHandler,
|
|
||||||
createPrewarmSubtitleDictionariesMainHandler,
|
|
||||||
createUpdateMpvSubtitleRenderMetricsHandler,
|
|
||||||
createBuildUpdateMpvSubtitleRenderMetricsMainDepsHandler,
|
|
||||||
createMpvOsdRuntimeHandlers,
|
createMpvOsdRuntimeHandlers,
|
||||||
createCycleSecondarySubModeRuntimeHandler,
|
createCycleSecondarySubModeRuntimeHandler,
|
||||||
} from './main/runtime/domains/mpv';
|
} from './main/runtime/domains/mpv';
|
||||||
import type { MpvClientRuntimeServiceOptions } from './main/runtime/domains/mpv';
|
|
||||||
import {
|
import {
|
||||||
createBuildCopyCurrentSubtitleMainDepsHandler,
|
createBuildCopyCurrentSubtitleMainDepsHandler,
|
||||||
createBuildHandleMineSentenceDigitMainDepsHandler,
|
createBuildHandleMineSentenceDigitMainDepsHandler,
|
||||||
@@ -324,7 +245,6 @@ import {
|
|||||||
MpvIpcClient,
|
MpvIpcClient,
|
||||||
SubtitleWebSocket,
|
SubtitleWebSocket,
|
||||||
Texthooker,
|
Texthooker,
|
||||||
DEFAULT_MPV_SUBTITLE_RENDER_METRICS,
|
|
||||||
applyMpvSubtitleRenderMetricsPatch,
|
applyMpvSubtitleRenderMetricsPatch,
|
||||||
authenticateWithPasswordRuntime,
|
authenticateWithPasswordRuntime,
|
||||||
broadcastRuntimeOptionsChangedRuntime,
|
broadcastRuntimeOptionsChangedRuntime,
|
||||||
@@ -424,7 +344,6 @@ import { createCharacterDictionaryRuntimeService } from './main/character-dictio
|
|||||||
import { createCharacterDictionaryAutoSyncRuntimeService } from './main/runtime/character-dictionary-auto-sync';
|
import { createCharacterDictionaryAutoSyncRuntimeService } from './main/runtime/character-dictionary-auto-sync';
|
||||||
import {
|
import {
|
||||||
type AnilistMediaGuessRuntimeState,
|
type AnilistMediaGuessRuntimeState,
|
||||||
type AppState,
|
|
||||||
type StartupState,
|
type StartupState,
|
||||||
applyStartupState,
|
applyStartupState,
|
||||||
createAppState,
|
createAppState,
|
||||||
@@ -1455,13 +1374,8 @@ function shouldInitializeMecabForAnnotations(): boolean {
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
getResolvedJellyfinConfig,
|
getResolvedJellyfinConfig,
|
||||||
getJellyfinClientInfo,
|
|
||||||
reportJellyfinRemoteProgress,
|
reportJellyfinRemoteProgress,
|
||||||
reportJellyfinRemoteStopped,
|
reportJellyfinRemoteStopped,
|
||||||
handleJellyfinRemotePlay,
|
|
||||||
handleJellyfinRemotePlaystate,
|
|
||||||
handleJellyfinRemoteGeneralCommand,
|
|
||||||
playJellyfinItemInMpv,
|
|
||||||
startJellyfinRemoteSession,
|
startJellyfinRemoteSession,
|
||||||
stopJellyfinRemoteSession,
|
stopJellyfinRemoteSession,
|
||||||
runJellyfinCommand,
|
runJellyfinCommand,
|
||||||
@@ -2184,7 +2098,7 @@ const ensureImmersionTrackerStarted = (): void => {
|
|||||||
createImmersionTrackerStartup();
|
createImmersionTrackerStartup();
|
||||||
};
|
};
|
||||||
|
|
||||||
const { reloadConfig: reloadConfigHandler, appReadyRuntimeRunner } = composeAppReadyRuntime({
|
const { appReadyRuntimeRunner } = composeAppReadyRuntime({
|
||||||
reloadConfigMainDeps: {
|
reloadConfigMainDeps: {
|
||||||
reloadConfigStrict: () => configService.reloadConfigStrict(),
|
reloadConfigStrict: () => configService.reloadConfigStrict(),
|
||||||
logInfo: (message) => appLogger.logInfo(message),
|
logInfo: (message) => appLogger.logInfo(message),
|
||||||
@@ -2288,7 +2202,7 @@ const { reloadConfig: reloadConfigHandler, appReadyRuntimeRunner } = composeAppR
|
|||||||
immersionTrackerStartupMainDeps,
|
immersionTrackerStartupMainDeps,
|
||||||
});
|
});
|
||||||
|
|
||||||
const { appLifecycleRuntimeRunner, runAndApplyStartupState } =
|
const { runAndApplyStartupState } =
|
||||||
runtimeRegistry.startup.createStartupRuntimeHandlers<
|
runtimeRegistry.startup.createStartupRuntimeHandlers<
|
||||||
CliArgs,
|
CliArgs,
|
||||||
StartupState,
|
StartupState,
|
||||||
@@ -2386,7 +2300,6 @@ function handleInitialArgs(): void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const {
|
const {
|
||||||
bindMpvClientEventHandlers,
|
|
||||||
createMpvClientRuntimeService: createMpvClientRuntimeServiceHandler,
|
createMpvClientRuntimeService: createMpvClientRuntimeServiceHandler,
|
||||||
updateMpvSubtitleRenderMetrics: updateMpvSubtitleRenderMetricsHandler,
|
updateMpvSubtitleRenderMetrics: updateMpvSubtitleRenderMetricsHandler,
|
||||||
tokenizeSubtitle,
|
tokenizeSubtitle,
|
||||||
@@ -2758,10 +2671,6 @@ async function syncYomitanDefaultProfileAnkiServer(): Promise<void> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function createOverlayWindow(kind: 'visible' | 'modal'): BrowserWindow {
|
|
||||||
return createOverlayWindowHandler(kind);
|
|
||||||
}
|
|
||||||
|
|
||||||
function createModalWindow(): BrowserWindow {
|
function createModalWindow(): BrowserWindow {
|
||||||
const existingWindow = overlayManager.getModalWindow();
|
const existingWindow = overlayManager.getModalWindow();
|
||||||
if (existingWindow && !existingWindow.isDestroyed()) {
|
if (existingWindow && !existingWindow.isDestroyed()) {
|
||||||
@@ -2775,13 +2684,6 @@ function createModalWindow(): BrowserWindow {
|
|||||||
function createMainWindow(): BrowserWindow {
|
function createMainWindow(): BrowserWindow {
|
||||||
return createMainWindowHandler();
|
return createMainWindowHandler();
|
||||||
}
|
}
|
||||||
function resolveTrayIconPath(): string | null {
|
|
||||||
return resolveTrayIconPathHandler();
|
|
||||||
}
|
|
||||||
|
|
||||||
function buildTrayMenu(): Menu {
|
|
||||||
return buildTrayMenuHandler();
|
|
||||||
}
|
|
||||||
|
|
||||||
function ensureTray(): void {
|
function ensureTray(): void {
|
||||||
ensureTrayHandler();
|
ensureTrayHandler();
|
||||||
@@ -2808,8 +2710,6 @@ const {
|
|||||||
startPendingMultiCopy,
|
startPendingMultiCopy,
|
||||||
cancelPendingMineSentenceMultiple,
|
cancelPendingMineSentenceMultiple,
|
||||||
startPendingMineSentenceMultiple,
|
startPendingMineSentenceMultiple,
|
||||||
registerOverlayShortcuts,
|
|
||||||
unregisterOverlayShortcuts,
|
|
||||||
syncOverlayShortcuts,
|
syncOverlayShortcuts,
|
||||||
refreshOverlayShortcuts,
|
refreshOverlayShortcuts,
|
||||||
} = composeShortcutRuntimes({
|
} = composeShortcutRuntimes({
|
||||||
@@ -2848,7 +2748,7 @@ const {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const { appendToMpvLog, flushMpvLog, showMpvOsd } = createMpvOsdRuntimeHandlers({
|
const { flushMpvLog, showMpvOsd } = createMpvOsdRuntimeHandlers({
|
||||||
appendToMpvLogMainDeps: {
|
appendToMpvLogMainDeps: {
|
||||||
logPath: DEFAULT_MPV_LOG_PATH,
|
logPath: DEFAULT_MPV_LOG_PATH,
|
||||||
dirname: (targetPath) => path.dirname(targetPath),
|
dirname: (targetPath) => path.dirname(targetPath),
|
||||||
@@ -3005,7 +2905,6 @@ const {
|
|||||||
setVisibleOverlayVisible: setVisibleOverlayVisibleHandler,
|
setVisibleOverlayVisible: setVisibleOverlayVisibleHandler,
|
||||||
toggleVisibleOverlay: toggleVisibleOverlayHandler,
|
toggleVisibleOverlay: toggleVisibleOverlayHandler,
|
||||||
setOverlayVisible: setOverlayVisibleHandler,
|
setOverlayVisible: setOverlayVisibleHandler,
|
||||||
toggleOverlay: toggleOverlayHandler,
|
|
||||||
} = createOverlayVisibilityRuntime({
|
} = createOverlayVisibilityRuntime({
|
||||||
setVisibleOverlayVisibleDeps: {
|
setVisibleOverlayVisibleDeps: {
|
||||||
setVisibleOverlayVisibleCore,
|
setVisibleOverlayVisibleCore,
|
||||||
@@ -3065,11 +2964,7 @@ const shiftSubtitleDelayToAdjacentCueHandler = createShiftSubtitleDelayToAdjacen
|
|||||||
showMpvOsd: (text) => showMpvOsd(text),
|
showMpvOsd: (text) => showMpvOsd(text),
|
||||||
});
|
});
|
||||||
|
|
||||||
const {
|
const { registerIpcRuntimeHandlers } = composeIpcRuntimeHandlers({
|
||||||
handleMpvCommandFromIpc: handleMpvCommandFromIpcHandler,
|
|
||||||
runSubsyncManualFromIpc: runSubsyncManualFromIpcHandler,
|
|
||||||
registerIpcRuntimeHandlers,
|
|
||||||
} = composeIpcRuntimeHandlers({
|
|
||||||
mpvCommandMainDeps: {
|
mpvCommandMainDeps: {
|
||||||
triggerSubsyncFromConfig: () => triggerSubsyncFromConfig(),
|
triggerSubsyncFromConfig: () => triggerSubsyncFromConfig(),
|
||||||
openRuntimeOptionsPalette: () => openRuntimeOptionsPalette(),
|
openRuntimeOptionsPalette: () => openRuntimeOptionsPalette(),
|
||||||
@@ -3224,11 +3119,8 @@ const createCliCommandContextHandler = createCliCommandContextFactory({
|
|||||||
logWarn: (message: string) => logger.warn(message),
|
logWarn: (message: string) => logger.warn(message),
|
||||||
logError: (message: string, err: unknown) => logger.error(message, err),
|
logError: (message: string, err: unknown) => logger.error(message, err),
|
||||||
});
|
});
|
||||||
const {
|
const { createMainWindow: createMainWindowHandler, createModalWindow: createModalWindowHandler } =
|
||||||
createOverlayWindow: createOverlayWindowHandler,
|
createOverlayWindowRuntimeHandlers<BrowserWindow>({
|
||||||
createMainWindow: createMainWindowHandler,
|
|
||||||
createModalWindow: createModalWindowHandler,
|
|
||||||
} = createOverlayWindowRuntimeHandlers<BrowserWindow>({
|
|
||||||
createOverlayWindowDeps: {
|
createOverlayWindowDeps: {
|
||||||
createOverlayWindowCore: (kind, options) => createOverlayWindowCore(kind, options),
|
createOverlayWindowCore: (kind, options) => createOverlayWindowCore(kind, options),
|
||||||
isDev,
|
isDev,
|
||||||
@@ -3250,12 +3142,8 @@ const {
|
|||||||
setMainWindow: (window) => overlayManager.setMainWindow(window),
|
setMainWindow: (window) => overlayManager.setMainWindow(window),
|
||||||
setModalWindow: (window) => overlayManager.setModalWindow(window),
|
setModalWindow: (window) => overlayManager.setModalWindow(window),
|
||||||
});
|
});
|
||||||
const {
|
const { ensureTray: ensureTrayHandler, destroyTray: destroyTrayHandler } =
|
||||||
resolveTrayIconPath: resolveTrayIconPathHandler,
|
createTrayRuntimeHandlers({
|
||||||
buildTrayMenu: buildTrayMenuHandler,
|
|
||||||
ensureTray: ensureTrayHandler,
|
|
||||||
destroyTray: destroyTrayHandler,
|
|
||||||
} = createTrayRuntimeHandlers({
|
|
||||||
resolveTrayIconPathDeps: {
|
resolveTrayIconPathDeps: {
|
||||||
resolveTrayIconPathRuntime,
|
resolveTrayIconPathRuntime,
|
||||||
platform: process.platform,
|
platform: process.platform,
|
||||||
@@ -3436,25 +3324,10 @@ function setOverlayVisible(visible: boolean): void {
|
|||||||
setOverlayVisibleHandler(visible);
|
setOverlayVisibleHandler(visible);
|
||||||
syncOverlayMpvSubtitleSuppression();
|
syncOverlayMpvSubtitleSuppression();
|
||||||
}
|
}
|
||||||
function toggleOverlay(): void {
|
|
||||||
if (!overlayManager.getVisibleOverlayVisible()) {
|
|
||||||
void ensureOverlayMpvSubtitlesHidden();
|
|
||||||
}
|
|
||||||
toggleOverlayHandler();
|
|
||||||
syncOverlayMpvSubtitleSuppression();
|
|
||||||
}
|
|
||||||
function handleOverlayModalClosed(modal: OverlayHostedModal): void {
|
function handleOverlayModalClosed(modal: OverlayHostedModal): void {
|
||||||
handleOverlayModalClosedHandler(modal);
|
handleOverlayModalClosedHandler(modal);
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleMpvCommandFromIpc(command: (string | number)[]): void {
|
|
||||||
handleMpvCommandFromIpcHandler(command);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function runSubsyncManualFromIpc(request: SubsyncManualRunRequest): Promise<SubsyncResult> {
|
|
||||||
return runSubsyncManualFromIpcHandler(request) as Promise<SubsyncResult>;
|
|
||||||
}
|
|
||||||
|
|
||||||
function appendClipboardVideoToQueue(): { ok: boolean; message: string } {
|
function appendClipboardVideoToQueue(): { ok: boolean; message: string } {
|
||||||
return appendClipboardVideoToQueueHandler();
|
return appendClipboardVideoToQueueHandler();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,10 +22,13 @@ type RequiredMpvInputKeys = keyof ComposerInputs<
|
|||||||
MpvRuntimeComposerOptions<FakeMpvClient, FakeTokenizerDeps, FakeTokenizedSubtitle>
|
MpvRuntimeComposerOptions<FakeMpvClient, FakeTokenizerDeps, FakeTokenizedSubtitle>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
type _anilistHasNotifyDeps = Assert<IsAssignable<'notifyDeps', RequiredAnilistSetupInputKeys>>;
|
const contractAssertions = [
|
||||||
type _jellyfinHasGetMpvClient = Assert<IsAssignable<'getMpvClient', RequiredJellyfinInputKeys>>;
|
true as Assert<IsAssignable<'notifyDeps', RequiredAnilistSetupInputKeys>>,
|
||||||
type _ipcHasRegistration = Assert<IsAssignable<'registration', RequiredIpcInputKeys>>;
|
true as Assert<IsAssignable<'getMpvClient', RequiredJellyfinInputKeys>>,
|
||||||
type _mpvHasTokenizer = Assert<IsAssignable<'tokenizer', RequiredMpvInputKeys>>;
|
true as Assert<IsAssignable<'registration', RequiredIpcInputKeys>>,
|
||||||
|
true as Assert<IsAssignable<'tokenizer', RequiredMpvInputKeys>>,
|
||||||
|
];
|
||||||
|
void contractAssertions;
|
||||||
|
|
||||||
// @ts-expect-error missing required notifyDeps should fail compile-time contract
|
// @ts-expect-error missing required notifyDeps should fail compile-time contract
|
||||||
const anilistMissingRequired: AnilistSetupComposerOptions = {
|
const anilistMissingRequired: AnilistSetupComposerOptions = {
|
||||||
|
|||||||
Reference in new issue
Block a user