signalk-parquet
Version:
Vessel data Parquet file archive with automated value and geospatial triggers. History API compliant with cloud backups and queries.
72 lines • 2.32 kB
TypeScript
/**
* Information about a scanned file
*/
export interface FileInfo {
path: string;
name: string;
size: number;
modifiedTime: number;
directory: string;
}
/**
* Cached directory scanner that reduces filesystem operations
* Maintains an index of files and only rescans when needed
*/
export declare class DirectoryScanner {
private cache;
private cacheTTL;
private excludedDirs;
/**
* @param cacheTTL - Cache time-to-live in milliseconds (default from config)
* @param excludedDirs - Directory names to skip during scanning (defaults to SPECIAL_DIRECTORIES)
*/
constructor(cacheTTL?: number, excludedDirs?: string[]);
/**
* Scan a directory and return all files matching the pattern
* Uses cache when available and valid
*
* @param baseDir - Root directory to scan
* @param filePattern - Optional regex pattern to match files (null = match all)
* @param forceRefresh - Force cache refresh even if valid
* @returns Array of file information
*/
scanDirectory(baseDir: string, filePattern?: RegExp | null, forceRefresh?: boolean): Promise<FileInfo[]>;
/**
* Find files by date pattern (e.g., "2025-11-02")
* Optimized for consolidation use case
*
* @param baseDir - Root directory to scan
* @param dateStr - Date string to match (YYYY-MM-DD format)
* @param excludeConsolidated - Exclude already consolidated files
* @returns Array of matching files
*/
findFilesByDate(baseDir: string, dateStr: string, excludeConsolidated?: boolean): Promise<FileInfo[]>;
/**
* Recursive directory walker
* Private method used by scanDirectory
*/
private walkDirectory;
/**
* Invalidate cache for a specific directory
* Call this when files are added/removed in that directory
*/
invalidateCache(directory: string): void;
/**
* Clear entire cache
* Useful for testing or manual cache refresh
*/
clearCache(): void;
/**
* Get cache statistics
*/
getCacheStats(): {
entries: number;
totalFiles: number;
totalDirectories: number;
};
/**
* Get list of cached directories
*/
getCachedDirectories(): string[];
}
//# sourceMappingURL=directory-scanner.d.ts.map