UNPKG

@leyyo/cache

Version:
102 lines (101 loc) 7.02 kB
import { CacheBasic, CacheBasicDef, CacheBasicSecure, CacheCommandDisabledLambda, CacheCommandIgnoredLambda, CmdBasicCopy, CmdBasicGetTimestamp, CmdBasicGetTtl, CmdBasicInfoResult, CmdBasicSetBase, CmdBasicSetMoreBase, CmdBasicSetMoreWithProp, CmdBasicSetTimestamp, CmdBasicSetTtl, CmdBasicSetWithKey, InvalidatorType } from "./types"; import { Id, KeyAny, KeyAnyArray, KeyId, TR } from "../types"; import { CacheFormat } from "../format"; import { CacheInvalidator, CacheInvalidatorResult } from "../invalidator"; import { CacheChannel, CacheChannelProp, CacheChannelPropSecure } from "../channel"; import { CacheOptCopy, CacheResulCopy, CacheResulSet, CacheResultBoolean, CacheResultGetExpiry, CacheResultNumber, CacheResultPersist, CacheResultSetExpiry } from "../command"; import { ExpiryMode } from "../literal"; export declare abstract class CacheBasicAbstract<A extends TR, N extends Id> implements CacheBasic<A, N>, CacheBasicSecure<A, N> { protected readonly channel: CacheChannel<A, N>; protected format: CacheFormat<A, N>; protected invalidator: CacheInvalidator<A>; protected prop: Readonly<CacheChannelProp<A>>; protected check: CacheChannelPropSecure<A>; protected ignoredMap: Map<InvalidatorType, CacheCommandIgnoredLambda<A, unknown>>; protected disabledMap: Map<InvalidatorType, CacheCommandDisabledLambda<A, unknown>>; protected constructor(channel: CacheChannel<A, N>); private _fillInvalidators; private _formatRawValue; private _afterSetMore; private _setDocsMore; private _setRawsMore; /** @inheritDoc */ delete(key: KeyAny): Promise<CacheInvalidatorResult<A, CacheResultBoolean>>; /** @inheritDoc */ deleteMore(keys: KeyAnyArray): Promise<CacheInvalidatorResult<A, CacheResultNumber>>; /** @inheritDoc */ unlink(key: KeyAny): Promise<CacheInvalidatorResult<A, CacheResultBoolean>>; /** @inheritDoc */ unlinkMore(keys: KeyAnyArray): Promise<CacheInvalidatorResult<A, CacheResultNumber>>; /** @inheritDoc */ exists(key: KeyAny): Promise<CacheInvalidatorResult<A, CacheResultBoolean>>; /** @inheritDoc */ existMore(keys: KeyAnyArray): Promise<CacheInvalidatorResult<A, CacheResultNumber>>; /** @inheritDoc */ getDoc(key: KeyAny): Promise<CacheInvalidatorResult<A, A>>; /** @inheritDoc */ listDocs(keys: KeyAnyArray): Promise<CacheInvalidatorResult<A, Array<A>>>; /** @inheritDoc */ getRaw<T>(key: KeyAny): Promise<CacheInvalidatorResult<A, T>>; /** @inheritDoc */ listRaws<T>(keys: KeyAnyArray): Promise<CacheInvalidatorResult<A, Array<T>>>; setDoc(p1: KeyAny | Partial<A>, p2?: Partial<A> | CmdBasicSetWithKey<A>, p3?: CmdBasicSetBase): Promise<CacheInvalidatorResult<A, Partial<A> | CacheResulSet>>; setRaw<T extends string | number>(key: KeyAny, value: T, opt?: CmdBasicSetBase): Promise<CacheInvalidatorResult<A, string | CacheResulSet>>; setDocsMore(values: Array<Partial<A>> | Record<KeyId, Partial<A>> | Map<KeyId, Partial<A>> | Array<[KeyId, Partial<A>]>, opt?: CmdBasicSetMoreWithProp<A> | CmdBasicSetMoreBase): Promise<CacheInvalidatorResult<A, CacheResulSet>>; setRawsMore<T extends string | number>(values: Record<KeyId, T> | Map<KeyId, T> | Array<[KeyId, T]>, opt?: CmdBasicSetMoreBase): Promise<CacheInvalidatorResult<A, CacheResulSet>>; /** @inheritDoc */ copy(source: KeyAny, destination: KeyAny, opt?: CmdBasicCopy): Promise<CacheInvalidatorResult<A, CacheResulCopy>>; /** @inheritDoc */ getType(key: KeyAny): Promise<CacheInvalidatorResult<A, string>>; /** @inheritDoc */ getTypeMore(keys: KeyAnyArray): Promise<CacheInvalidatorResult<A, Array<string>>>; /** @inheritDoc */ getInfo(key: KeyAny): Promise<CmdBasicInfoResult>; /** @inheritDoc */ getTimestamp(key: KeyAny, opt?: CmdBasicGetTimestamp): Promise<CacheInvalidatorResult<A, CacheResultGetExpiry>>; /** @inheritDoc */ getTimestampMore(keys: KeyAnyArray, opt?: CmdBasicGetTimestamp): Promise<CacheInvalidatorResult<A, Array<CacheResultGetExpiry>>>; /** @inheritDoc */ getTtl(key: KeyAny, opt?: CmdBasicGetTtl): Promise<CacheInvalidatorResult<A, CacheResultGetExpiry>>; /** @inheritDoc */ getTtlMore(keys: KeyAnyArray, opt?: CmdBasicGetTtl): Promise<CacheInvalidatorResult<A, Array<CacheResultGetExpiry>>>; /** @inheritDoc */ setTimestamp(key: KeyAny, opt?: CmdBasicSetTimestamp): Promise<CacheInvalidatorResult<A, CacheResultSetExpiry>>; /** @inheritDoc */ setTimestampMore(keys: KeyAnyArray, opt?: CmdBasicSetTtl): Promise<CacheInvalidatorResult<A, Array<CacheResultSetExpiry>>>; /** @inheritDoc */ setTtl(key: KeyAny, opt?: CmdBasicSetTtl): Promise<CacheInvalidatorResult<A, CacheResultSetExpiry>>; /** @inheritDoc */ setTtlMore(keys: KeyAnyArray, opt?: CmdBasicSetTtl): Promise<CacheInvalidatorResult<A, Array<CacheResultSetExpiry>>>; /** @inheritDoc */ persist(key: KeyAny): Promise<CacheInvalidatorResult<A, CacheResultPersist>>; /** @inheritDoc */ persistMore(keys: KeyAnyArray): Promise<CacheInvalidatorResult<A, Array<CacheResultPersist>>>; get $flat(): CacheBasicDef; get $secure(): CacheBasicSecure<A, N>; get $back(): CacheBasic<A, N>; $init(): void; abstract $copy(source: string, destination: string, opt?: CacheOptCopy): Promise<boolean>; abstract $get(key: string): Promise<string>; abstract $getMore(keys: Array<string>): Promise<Array<string>>; abstract $exists(key: string): Promise<boolean>; abstract $existMore(keys: Array<string>): Promise<number>; abstract $set(key: string, value: string, opt?: CmdBasicSetBase): Promise<string>; abstract $setMore(records: Record<string, string>): Promise<string>; abstract $delete(key: string): Promise<boolean>; abstract $deleteMore(keys: Array<string>): Promise<number>; abstract $getTimestamp(key: string): Promise<CacheResultGetExpiry>; abstract $getTimestampMore(keys: Array<string>): Promise<Array<CacheResultGetExpiry>>; abstract $getTtl(key: string): Promise<CacheResultGetExpiry>; abstract $getTtlMore(keys: Array<string>): Promise<Array<CacheResultGetExpiry>>; abstract $type(key: string): Promise<string>; abstract $typeMore(keys: Array<string>): Promise<Array<string>>; abstract $persist(key: string): Promise<CacheResultPersist>; abstract $persistMore(keys: Array<string>): Promise<Array<CacheResultPersist>>; abstract $setTimestamp(key: string, milliseconds: number, mode?: ExpiryMode): Promise<CacheResultSetExpiry>; abstract $setTimestampMore(keys: Array<string>, milliseconds: number, mode?: ExpiryMode): Promise<Array<CacheResultSetExpiry>>; abstract $setTtl(key: string, milliseconds: number, mode?: ExpiryMode): Promise<CacheResultSetExpiry>; abstract $setTtlMore(keys: Array<string>, milliseconds: number, mode?: ExpiryMode): Promise<Array<CacheResultSetExpiry>>; abstract $unlink(key: string): Promise<boolean>; abstract $unlinkMore(keys: Array<string>): Promise<number>; }