@typecad/jlcpcb-parts
Version:
Intelligent fuzzy search for JLCPCB electrical components with CLI interface
91 lines • 3.05 kB
TypeScript
import { CLI } from '../interfaces/CLI.js';
import { SearchEngine } from '../interfaces/SearchEngine.js';
import { SearchResult } from '../types/index.js';
/**
* Command-line interface implementation for the JLCPCB component search tool
*/
export declare class CommandLineInterface implements CLI {
private readonly searchEngine;
private readonly programName;
/**
* Creates a new CommandLineInterface instance
* @param searchEngine - The search engine to use for queries
* @param programName - The name of the program (default: 'jlcpcb-search')
*/
constructor(searchEngine: SearchEngine, programName?: string);
/**
* Main entry point for CLI execution
* @param args - Command line arguments (process.argv)
*/
run(args: string[]): Promise<void>;
/**
* Parses command-line arguments into a structured object
* @param args - Command-line arguments
* @returns Parsed arguments object
*/
private parseArguments;
/**
* Validates a search query
* @param query - Search query to validate
* @returns True if the query is valid, false otherwise
*/
private validateQuery;
/**
* Prompts the user for a search query when none is provided
* @returns Promise that resolves to the user's input
*/
private promptForSearchQuery;
/**
* Sorts search results based on the specified criteria
* @param results - Array of search results to sort
* @param sortBy - Sorting criteria
*/
private sortResults;
/**
* Gets color for score based on its value
* @param score - Score value
* @returns Chalk color function
*/
private getScoreColor;
/**
* Displays search results in a formatted manner
* @param results - Array of search results to display
* @param format - Format to use for display (detailed, compact, table, or json)
*/
displayResults(results: SearchResult[], format?: 'detailed' | 'compact' | 'table' | 'json'): void;
/**
* Displays results in detailed format
* @param results - Array of search results to display
*/
private displayDetailedResults;
/**
* Displays results in compact format
* @param results - Array of search results to display
*/
private displayCompactResults;
/**
* Displays results in table format
* @param results - Array of search results to display
*/
private displayTableResults;
/**
* Displays results in JSON format
* @param results - Array of search results to display
*/
private displayJsonResults;
/**
* Formats and outputs errors in JSON format
* @param error - The error to format
* @param code - Optional error code for programmatic handling
*/
private displayJsonError;
/**
* Displays help text and usage information
*/
displayHelp(): void;
/**
* Displays version information
*/
private displayVersion;
}
//# sourceMappingURL=CommandLineInterface.d.ts.map