qraft
Version:
A powerful CLI tool to qraft structured project setups from GitHub template repositories
57 lines • 1.78 kB
TypeScript
export interface FileInfo {
path: string;
relativePath: string;
name: string;
extension: string;
size: number;
isDirectory: boolean;
isFile: boolean;
lastModified: Date;
content?: string | undefined;
}
export interface DirectoryStructure {
files: FileInfo[];
directories: FileInfo[];
totalFiles: number;
totalDirectories: number;
totalSize: number;
depth: number;
rootPath: string;
}
export interface ScanOptions {
includeContent?: boolean;
maxContentSize?: number;
maxDepth?: number;
followSymlinks?: boolean;
excludePatterns?: string[];
includeHidden?: boolean;
}
export interface ExclusionPatterns {
directories: string[];
files: string[];
extensions: string[];
patterns: string[];
}
export declare class DirectoryScanner {
private readonly defaultExcludePatterns;
private readonly defaultOptions;
scanDirectory(directoryPath: string, options?: ScanOptions): Promise<DirectoryStructure>;
private validateDirectory;
private scanRecursive;
private flattenExclusionPatterns;
private shouldExclude;
private isExcludedByPatterns;
private matchesPattern;
private shouldIncludeContent;
getDirectorySummary(structure: DirectoryStructure): string;
getFileTypeDistribution(structure: DirectoryStructure): Record<string, number>;
getExclusionPatterns(category?: keyof ExclusionPatterns): string[];
wouldBeExcluded(filePath: string, options?: Partial<ScanOptions>): boolean;
getExclusionStats(directoryPath: string): Promise<{
totalItems: number;
excludedItems: number;
includedItems: number;
exclusionReasons: Record<string, number>;
}>;
}
//# sourceMappingURL=directoryScanner.d.ts.map