Add CLI argument parsing tests and improve argument handling

- Introduced `test/cli.test.ts` with unit tests for CLI argument parsing.
- Enhanced CLI argument handling in `cli.ts` for better error reporting and help message support.
- Updated `MarkdownGenerator` and related files for improved robustness.
This commit is contained in:
geoffsee
2025-06-13 12:39:32 -04:00
committed by Geoff Seemueller
parent c8b0215435
commit 6f9d37a292
4 changed files with 145 additions and 10 deletions

View File

@@ -11,7 +11,7 @@ import { glob } from 'glob';
import { isPreset, type PresetPrompt, prompts } from './prompts.ts';
interface MarkdownGeneratorOptions {
export interface MarkdownGeneratorOptions {
dir?: string;
outputFilePath?: string;
fileTypeExclusions?: Set<string>;
@@ -48,6 +48,7 @@ export class MarkdownGenerator {
options.fileTypeExclusions || fileTypeExclusions,
);
this.fileExclusions = options.fileExclusions || [...fileExclusions];
// @ts-ignore - options.customPatterns signature is valid
this.tokenCleaner = new TokenCleaner(options.customPatterns, options.customSecretPatterns);
this.verbose = options.verbose !== undefined ? options.verbose : true;
this.initialized = false;
@@ -232,7 +233,7 @@ export class MarkdownGenerator {
if (this.verbose) {
console.log('File not found, creating a new \'todo\' file.');
}
await writeFile(todoPath, todoPrompt); // Create an empty 'todo' file
await writeFile(todoPath, ''); // Create an empty 'todo' file
return await this.getTodo(); // Await the recursive call
}
if (this.verbose) {
@@ -281,7 +282,7 @@ export class MarkdownGenerator {
console.log({ total_tokens: totalTokens });
}
return { success: true, tokenCount: llama3Tokenizer.encode(markdown).length };
} catch (error) {
} catch (error: any) {
if (this.verbose) {
console.error('Error writing markdown document:', error);
}