refactor: extract startup lifecycle hooks orchestration

This commit is contained in:
2026-02-10 01:44:20 -08:00
parent 31f76ad476
commit 2d3bb19458
4 changed files with 265 additions and 169 deletions

View File

@@ -0,0 +1,44 @@
import { AppLifecycleDepsRuntimeOptions } from "./app-lifecycle-deps-runtime-service";
import {
AppReadyRuntimeDeps,
runAppReadyRuntimeService,
} from "./app-ready-runtime-service";
import {
AppShutdownRuntimeDeps,
runAppShutdownRuntimeService,
} from "./app-shutdown-runtime-service";
import {
createStartupAppReadyDepsRuntimeService,
createStartupAppShutdownDepsRuntimeService,
} from "./startup-lifecycle-runtime-deps-service";
type StartupLifecycleHookDeps = Pick<
AppLifecycleDepsRuntimeOptions,
"onReady" | "onWillQuitCleanup" | "shouldRestoreWindowsOnActivate" | "restoreWindowsOnActivate"
>;
export interface StartupLifecycleHooksRuntimeOptions {
appReadyDeps: AppReadyRuntimeDeps;
appShutdownDeps: AppShutdownRuntimeDeps;
shouldRestoreWindowsOnActivate: () => boolean;
restoreWindowsOnActivate: () => void;
}
export function createStartupLifecycleHooksRuntimeService(
options: StartupLifecycleHooksRuntimeOptions,
): StartupLifecycleHookDeps {
return {
onReady: async () => {
await runAppReadyRuntimeService(
createStartupAppReadyDepsRuntimeService(options.appReadyDeps),
);
},
onWillQuitCleanup: () => {
runAppShutdownRuntimeService(
createStartupAppShutdownDepsRuntimeService(options.appShutdownDeps),
);
},
shouldRestoreWindowsOnActivate: options.shouldRestoreWindowsOnActivate,
restoreWindowsOnActivate: options.restoreWindowsOnActivate,
};
}