import * as plugins from './levelcache.plugins'; import { CacheDiskManager } from './levelcache.classes.cache.diskmanager'; import { CacheMemoryManager } from './levelcache.classes.cache.memorymanager'; import { CacheS3Manager } from './levelcache.classes.cache.s3manager'; import { CacheEntry } from './levelcache.classes.cacheentry'; /** * a leveled cache for storing things for a short time */ export class LevelCache { public cacheMap = new plugins.lik.Objectmap(); public cacheDiskManager = new CacheDiskManager(); public cacheMemoryManager = new CacheMemoryManager(); public cacheS3Manager = new CacheS3Manager(); private processKey (keyArg: string) { if (!keyArg) { return plugins.smartunique.shortId(); } } // Blobs /** * store a Blob */ public async storeBlobByKey (keyArg: string, blob: Buffer) { keyArg = this.processKey(keyArg); return keyArg; } /** * retrieve a blob */ public async retrieveBlob (keyArg: string): CacheEntry { } // Cache Entries /** * store a Cache Entries */ public async storeCacheEntry(cacheEntryArg: CacheEntry): string { } /** * retrieve cache entry */ public async retrieveCacheEntry (): CacheEntry { } /** * cleans the cache */ public clean() { }; }