UNPKG

portfree

Version:

A cross-platform CLI tool for managing processes running on specific ports

81 lines 2.8 kB
import { Command } from 'commander'; import { PortManager } from './core/port-manager'; import { Process as FreePortProcess } from './models/process'; interface CommandOptions { yes?: boolean; verbose?: boolean; } /** * CLI interface for PortFree * Handles command parsing, user interaction, and process management */ export declare class CLI { readonly program: Command; readonly portManager: PortManager; private readonly logger; constructor(); /** * Set up Commander.js commands and options */ private setupCommands; /** * Handle the main port command * @param port - Port number from command line * @param options - Command line options */ handlePortCommand(port: string | undefined, options: CommandOptions): Promise<void>; /** * Prompt user for port number with validation * @returns Valid port number */ promptForPort(): Promise<number>; /** * Display process information in a formatted way * @param processes - Array of process objects */ displayProcesses(processes: FreePortProcess[]): void; /** * Handle termination of a single process * @param proc - Process object * @param options - Command line options */ handleSingleProcess(proc: FreePortProcess, options: CommandOptions): Promise<void>; /** * Handle termination of multiple processes with interactive menu * @param processes - Array of process objects * @param options - Command line options */ handleMultipleProcesses(processes: FreePortProcess[], options: CommandOptions): Promise<void>; /** * Kill a process with detailed feedback * @param proc - Process object to kill * @param showDetailedOutput - Whether to show detailed output * @returns True if process was successfully killed */ private killProcessWithFeedback; /** * Prompt user for process termination confirmation * @param process - Process object * @param processNumber - Process number (for multiple processes) * @returns True if user wants to kill the process */ promptForKill(proc: FreePortProcess, processNumber?: number): Promise<boolean>; /** * Kill a process with feedback (simplified version for tests) * @param proc - Process object to kill * @returns Promise that resolves when kill attempt is complete */ killProcess(proc: FreePortProcess): Promise<void>; /** * Handle and display errors appropriately * @param error - Error to handle */ handleError(error: Error): void; /** * Parse command line arguments and execute * @param argv - Command line arguments */ run(argv?: string[]): Promise<void>; } export {}; //# sourceMappingURL=cli.d.ts.map