import { composeOverlayWindowHandlers } from '../runtime/composers/overlay-window-composer'; import { composeCliStartupHandlers, composeHeadlessStartupHandlers, composeIpcRuntimeHandlers, composeStartupLifecycleHandlers, } from '../runtime/composers'; export interface MainBootHandlersParams { startupLifecycleDeps: Parameters[0]; ipcRuntimeDeps: Parameters[0]; cliStartupDeps: Parameters[0]; headlessStartupDeps: Parameters< typeof composeHeadlessStartupHandlers >[0]; overlayWindowDeps: Parameters>[0]; } export function createMainBootHandlers< TBrowserWindow, TCliArgs, TStartupState, TBootstrapDeps, >(params: MainBootHandlersParams) { return { startupLifecycle: composeStartupLifecycleHandlers(params.startupLifecycleDeps), ipcRuntime: composeIpcRuntimeHandlers(params.ipcRuntimeDeps), cliStartup: composeCliStartupHandlers(params.cliStartupDeps), headlessStartup: composeHeadlessStartupHandlers( params.headlessStartupDeps, ), overlayWindow: composeOverlayWindowHandlers(params.overlayWindowDeps), }; } export const composeBootStartupLifecycleHandlers = composeStartupLifecycleHandlers; export const composeBootIpcRuntimeHandlers = composeIpcRuntimeHandlers; export const composeBootCliStartupHandlers = composeCliStartupHandlers; export const composeBootHeadlessStartupHandlers = composeHeadlessStartupHandlers; export const composeBootOverlayWindowHandlers = composeOverlayWindowHandlers;