@kareemaly/researcher
Version:
CLI tool for web research
49 lines (48 loc) • 1.25 kB
TypeScript
import { SearchResult, ProcessedContent } from './search';
export interface StorageConfig {
basePath: string;
createDirectories?: boolean;
}
export interface StorageStats {
totalSizeBytes: number;
searchCount: number;
contentCount: number;
}
export interface IStorage {
/**
* Initialize storage, creating necessary directories
*/
initialize(): Promise<void>;
/**
* Save search results and return the unique ID
*/
saveSearch(search: SearchResult): Promise<string>;
/**
* Save processed content for a URL
*/
saveContent(searchId: string, content: ProcessedContent): Promise<void>;
/**
* Get search results by ID
*/
getSearch(id: string): Promise<SearchResult | null>;
/**
* Get processed content for a URL
*/
getContent(searchId: string, url: string): Promise<ProcessedContent | null>;
/**
* List all searches with optional pagination
*/
listSearches(): Promise<SearchResult[]>;
/**
* Get storage statistics
*/
getStats(): Promise<StorageStats>;
/**
* Clean up old data
*/
cleanOlderThan(date: Date): Promise<number>;
/**
* Clean all data
*/
cleanAll(): Promise<number>;
}