Test library version
This commit is contained in:
35
src/lib/server/cache.ts
Normal file
35
src/lib/server/cache.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import cache from './redis.js';
|
||||
import type { RedisValue } from './redis.js';
|
||||
|
||||
interface CacheFacade {
|
||||
ready(): Promise<boolean>;
|
||||
put<T extends RedisValue>(key: string, value: T, ttl?: number): Promise<boolean>;
|
||||
get<T extends RedisValue = RedisValue>(key: string, defaultValue?: T | null): Promise<T | null>;
|
||||
has(key: string): Promise<boolean>;
|
||||
forget(key: string): Promise<boolean>;
|
||||
flush(): Promise<boolean>;
|
||||
forever<T extends RedisValue>(key: string, value: T): Promise<boolean>;
|
||||
remember<T extends RedisValue>(
|
||||
key: string,
|
||||
ttl: number,
|
||||
callback: () => Promise<T> | T
|
||||
): Promise<T>;
|
||||
rememberForever<T extends RedisValue>(key: string, callback: () => Promise<T> | T): Promise<T>;
|
||||
}
|
||||
|
||||
const Cache: CacheFacade = {
|
||||
ready: () => cache.ready(),
|
||||
put: <T extends RedisValue>(key: string, value: T, ttl?: number) => cache.put(key, value, ttl),
|
||||
get: <T extends RedisValue = RedisValue>(key: string, defaultValue?: T | null) =>
|
||||
cache.get<T>(key, defaultValue),
|
||||
has: (key: string) => cache.has(key),
|
||||
forget: (key: string) => cache.forget(key),
|
||||
flush: () => cache.flush(),
|
||||
forever: <T extends RedisValue>(key: string, value: T) => cache.forever(key, value),
|
||||
remember: <T extends RedisValue>(key: string, ttl: number, callback: () => Promise<T> | T) =>
|
||||
cache.remember(key, ttl, callback),
|
||||
rememberForever: <T extends RedisValue>(key: string, callback: () => Promise<T> | T) =>
|
||||
cache.rememberForever(key, callback)
|
||||
};
|
||||
|
||||
export default Cache;
|
||||
Reference in New Issue
Block a user