@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
TypeScript
/**
* 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