UNPKG

@typecad/jlcpcb-parts

Version:

Intelligent fuzzy search for JLCPCB electrical components with CLI interface

91 lines 3.05 kB
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