gitdb-database
Version:
A production-ready CLI tool for managing a NoSQL database using GitHub repositories as storage
74 lines • 1.97 kB
TypeScript
export interface SuperModeConfig {
enabled: boolean;
cacheSize: number;
batchSize: number;
compressionLevel: number;
graphqlEnabled: boolean;
deltaEncoding: boolean;
prefetchEnabled: boolean;
}
export interface CacheEntry {
key: string;
data: any;
timestamp: number;
version: string;
}
export interface BatchOperation {
type: 'insert' | 'update' | 'delete';
collection: string;
data: any;
id?: string;
}
export declare class SuperModeManager {
private config;
private cache;
private batchQueue;
private octokit;
private owner;
private repo;
private compressionCache;
constructor(token: string, owner: string, repo: string, config?: Partial<SuperModeConfig>);
/**
* Enable or disable SuperMode
*/
setSuperMode(enabled: boolean, options?: Partial<SuperModeConfig>): void;
/**
* Get cached data with automatic prefetching
*/
getCachedData(collection: string, query?: any): Promise<any>;
/**
* Set cached data with compression
*/
setCachedData(collection: string, data: any, query?: any): void;
/**
* Add operation to batch queue
*/
addToBatch(operation: BatchOperation): void;
/**
* Execute pending batch operations
*/
executeBatch(): Promise<void>;
/**
* Generate GraphQL schema for collections
*/
generateGraphQLSchema(collections: string[]): string;
/**
* Get performance statistics
*/
getStats(): any;
/**
* Clear cache and reset statistics
*/
clearCache(): void;
private generateCacheKey;
private compressData;
private decompressData;
private generateVersion;
private capitalizeFirst;
private calculateCacheHitRate;
private calculateCompressionRatio;
private prefetchRelatedData;
private groupOperationsByCollection;
private executeCollectionBatch;
}
//# sourceMappingURL=supermode.d.ts.map