drop-server-bak/server/internal/cache/cacheHandler.ts

22 lines
659 B
TypeScript
Raw Permalink Normal View History

2025-05-07 22:13:22 -04:00
import { prefixStorage, type StorageValue, type Storage } from "unstorage";
/**
* Creates and manages the lifecycles of various caches
*/
export class CacheHandler {
private caches = new Map<string, Storage<StorageValue>>();
/**
* Create a new cache
* @param name
* @returns
*/
createCache<V extends StorageValue>(name: string) {
// will allow us to dynamicing use redis in the future just by changing the storage used
const provider = prefixStorage<V>(useStorage<V>("appCache"), name);
// hack to let ts have us store cache
this.caches.set(name, provider as unknown as Storage<StorageValue>);
return provider;
}
}