portfree
Version:
A cross-platform CLI tool for managing processes running on specific ports
81 lines • 2.8 kB
TypeScript
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