@leyyo/cache
Version:
Common cache library
102 lines (101 loc) • 7.02 kB
TypeScript
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>;
}