mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 06:22:45 -08:00
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
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,
|
|
};
|
|
}
|