From 603cafff2083366a6c5374368477729cd0b549e4 Mon Sep 17 00:00:00 2001 From: sudacode Date: Sat, 14 Feb 2026 01:17:52 -0800 Subject: [PATCH] refactor(main): extract startup bootstrap dependency factory --- src/main.ts | 89 +++++++++++++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 41 deletions(-) diff --git a/src/main.ts b/src/main.ts index 9a66a2c..47cac96 100644 --- a/src/main.ts +++ b/src/main.ts @@ -613,47 +613,7 @@ function resolveMediaPathForJimaku(mediaPath: string | null): string | null { : mediaPath; } -const startupState = runStartupBootstrapRuntimeService({ - argv: process.argv, - parseArgs: (argv) => parseArgs(argv), - setLogLevelEnv: (level) => { - process.env.SUBMINER_LOG_LEVEL = level; - }, - enableVerboseLogging: () => { - process.env.SUBMINER_LOG_LEVEL = "debug"; - }, - forceX11Backend: (args) => { - forceX11Backend(args); - }, - enforceUnsupportedWaylandMode: (args) => { - enforceUnsupportedWaylandMode(args); - }, - getDefaultSocketPath: () => getDefaultSocketPath(), - defaultTexthookerPort: DEFAULT_TEXTHOOKER_PORT, - runGenerateConfigFlow: (args) => { - if (!args.generateConfig || shouldStartApp(args)) { - return false; - } - generateDefaultConfigFile(args, { - configDir: CONFIG_DIR, - defaultConfig: DEFAULT_CONFIG, - generateTemplate: (config) => generateConfigTemplate(config as never), - }) - .then((exitCode) => { - process.exitCode = exitCode; - app.quit(); - }) - .catch((error: Error) => { - console.error(`Failed to generate config: ${error.message}`); - process.exitCode = 1; - app.quit(); - }); - return true; - }, - startAppLifecycle: (args) => { - startAppLifecycleService(args, createAppLifecycleDepsRuntimeService(createAppLifecycleRuntimeDeps())); - }, -}); +const startupState = runStartupBootstrapRuntimeService(createStartupBootstrapRuntimeDeps()); appState.initialArgs = startupState.initialArgs; appState.mpvSocketPath = startupState.mpvSocketPath; @@ -770,6 +730,53 @@ function createAppLifecycleRuntimeDeps() { }; } +function createStartupBootstrapRuntimeDeps() { + return { + argv: process.argv, + parseArgs: (argv) => parseArgs(argv), + setLogLevelEnv: (level) => { + process.env.SUBMINER_LOG_LEVEL = level; + }, + enableVerboseLogging: () => { + process.env.SUBMINER_LOG_LEVEL = "debug"; + }, + forceX11Backend: (args) => { + forceX11Backend(args); + }, + enforceUnsupportedWaylandMode: (args) => { + enforceUnsupportedWaylandMode(args); + }, + getDefaultSocketPath: () => getDefaultSocketPath(), + defaultTexthookerPort: DEFAULT_TEXTHOOKER_PORT, + runGenerateConfigFlow: (args) => { + if (!args.generateConfig || shouldStartApp(args)) { + return false; + } + generateDefaultConfigFile(args, { + configDir: CONFIG_DIR, + defaultConfig: DEFAULT_CONFIG, + generateTemplate: (config) => generateConfigTemplate(config as never), + }) + .then((exitCode) => { + process.exitCode = exitCode; + app.quit(); + }) + .catch((error: Error) => { + console.error(`Failed to generate config: ${error.message}`); + process.exitCode = 1; + app.quit(); + }); + return true; + }, + startAppLifecycle: (args) => { + startAppLifecycleService( + args, + createAppLifecycleDepsRuntimeService(createAppLifecycleRuntimeDeps()), + ); + }, + }; +} + function handleCliCommand( args: CliArgs, source: CliCommandSource = "initial",