32 lines
833 B
TypeScript
32 lines
833 B
TypeScript
import { hasCacheProvider, registerCacheProvider } from "@suaveplan/cache";
|
|
import { StorageCache } from "../storage-cache/index.js";
|
|
|
|
declare module "@suaveplan/cache" {
|
|
interface CacheProviderRegistry {
|
|
storage: typeof StorageCache;
|
|
}
|
|
}
|
|
|
|
let registered = false;
|
|
|
|
/**
|
|
* Idempotently register `StorageCache` as the `"storage"` provider on the
|
|
* shared `CacheFactory` registry.
|
|
*
|
|
* Side-effect import — running this module once is enough; repeated imports
|
|
* are no-ops.
|
|
*/
|
|
export function registerStorageProvider(): void {
|
|
if (registered || hasCacheProvider("storage")) {
|
|
registered = true;
|
|
return;
|
|
}
|
|
registerCacheProvider(
|
|
"storage",
|
|
StorageCache as unknown as Parameters<typeof registerCacheProvider>[1]
|
|
);
|
|
registered = true;
|
|
}
|
|
|
|
registerStorageProvider();
|