refactor: split main.ts into domain runtimes

This commit is contained in:
2026-03-31 23:48:14 -07:00
parent 3502cdc607
commit 983f3b38ee
84 changed files with 15591 additions and 4251 deletions

View File

@@ -0,0 +1,41 @@
import {
composeStartupLifecycleHandlers,
type StartupLifecycleComposerOptions,
} from './runtime/composers';
export interface StartupLifecycleRuntimeInput {
protocolUrl: StartupLifecycleComposerOptions['registerProtocolUrlHandlersMainDeps'];
cleanup: StartupLifecycleComposerOptions['onWillQuitCleanupMainDeps'];
shouldRestoreWindowsOnActivate: StartupLifecycleComposerOptions['shouldRestoreWindowsOnActivateMainDeps'];
restoreWindowsOnActivate: StartupLifecycleComposerOptions['restoreWindowsOnActivateMainDeps'];
}
export interface StartupLifecycleRuntime {
registerProtocolUrlHandlers: () => void;
onWillQuitCleanup: () => void;
shouldRestoreWindowsOnActivate: () => boolean;
restoreWindowsOnActivate: () => void;
}
export function createStartupLifecycleRuntime(
input: StartupLifecycleRuntimeInput,
): StartupLifecycleRuntime {
const {
registerProtocolUrlHandlers,
onWillQuitCleanup,
shouldRestoreWindowsOnActivate,
restoreWindowsOnActivate,
} = composeStartupLifecycleHandlers({
registerProtocolUrlHandlersMainDeps: input.protocolUrl,
onWillQuitCleanupMainDeps: input.cleanup,
shouldRestoreWindowsOnActivateMainDeps: input.shouldRestoreWindowsOnActivate,
restoreWindowsOnActivateMainDeps: input.restoreWindowsOnActivate,
});
return {
registerProtocolUrlHandlers,
onWillQuitCleanup,
shouldRestoreWindowsOnActivate,
restoreWindowsOnActivate,
};
}