Initial Commit
This commit is contained in:
31
packages/persistence/cache/cache-storage/src/registry-augment/registry-augment.ts
vendored
Normal file
31
packages/persistence/cache/cache-storage/src/registry-augment/registry-augment.ts
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user