UNPKG

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
/** * 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