UNPKG

@tryloop/oats

Version:

🌾 OATS - OpenAPI TypeScript Sync. The missing link between your OpenAPI specs and TypeScript applications. Automatically watch, generate, and sync TypeScript clients from your API definitions.

50 lines • 1.53 kB
/** * Centralized shutdown management for OATS * * Handles graceful shutdown of all services and cleanup operations * * @module @oatsjs/utils/shutdown-manager */ import type { BaseService } from '../core/services/base-service.js'; import type { DevSyncEngine } from '../core/dev-sync-optimized.js'; import type { ProcessManager } from './process-manager.js'; import type { FSWatcher } from 'chokidar'; export interface ShutdownOptions { keepConfigWatcher?: boolean; exitProcess?: boolean; } export declare class ShutdownManager { private static instance; private logger; private isShuttingDown; private shutdownHandlers; private signalHandlersSetup; private constructor(); /** * Get singleton instance */ static getInstance(): ShutdownManager; /** * Register a custom shutdown handler */ registerHandler(handler: () => Promise<void>): void; /** * Perform graceful shutdown of all services */ shutdown(services: { syncEngine?: DevSyncEngine; services: Map<string, BaseService>; processManager: ProcessManager; configWatcher?: FSWatcher; unlinkPackages?: () => Promise<void>; }, options?: ShutdownOptions): Promise<void>; /** * Setup signal handlers for graceful shutdown */ setupSignalHandlers(shutdownCallback: () => Promise<void>): void; /** * Check if shutdown is in progress */ isShutdownInProgress(): boolean; } //# sourceMappingURL=shutdown-manager.d.ts.map