UNPKG

@leyyo/cache

Version:
21 lines (20 loc) 1.34 kB
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>;