@leyyo/cache
Version:
Common cache library
21 lines (20 loc) • 1.34 kB
TypeScript
import { CacheInvalidatorResult } from "../invalidator";
import { Id, KeyAny, TR } from "../types";
import { InitLike, ShiftMain, ShiftSecureFlat } from "../secure";
import { CacheResultBoolean, CacheResultNumber } from "../command";
export interface CacheSet<A extends TR, N extends Id> extends ShiftSecureFlat<CacheSetSecure<A, N>, CacheSetDef> {
add(key: KeyAny, members: Array<N>): Promise<CacheInvalidatorResult<A, CacheResultNumber>>;
remove(key: KeyAny, members: Array<N>): Promise<CacheInvalidatorResult<A, CacheResultNumber>>;
listMembers(key: KeyAny): Promise<CacheInvalidatorResult<A, Array<string>>>;
getLength(key: KeyAny): Promise<CacheInvalidatorResult<A, CacheResultNumber>>;
exists(key: KeyAny, member: N): Promise<CacheInvalidatorResult<A, CacheResultBoolean>>;
existMore(key: KeyAny, members: Array<N>): Promise<CacheInvalidatorResult<A, Array<CacheResultBoolean>>>;
}
export interface CacheSetSecure<A extends TR, N extends Id> extends ShiftMain<CacheSet<A, N>>, InitLike {
$add(key: string, members: Array<string>): Promise<number>;
$remove(key: string, members: Array<string>): Promise<number>;
$list(key: string): Promise<Array<string>>;
$length(key: string): Promise<number>;
$exist(key: string, member: string): Promise<boolean>;
}
export type CacheSetDef = CacheSet<TR, Id>;