@leyyo/cache
Version:
Common cache library
50 lines (49 loc) • 2.74 kB
TypeScript
import { CacheClient, CacheClientCreatorLambda } from "../client";
import { CacheHub, CacheHubInfo, CacheHubProp, CacheHubPropData, CacheHubPropLambda, CacheHubSecure } from "./types";
import { CacheSegment, CacheSegmentCreatorLambda, CacheSegmentPropLambda } from "../segment";
import { CacheEntity, CacheEntityCreatorLambda, CacheEntityDef } from "../entity";
import { CacheChannelCreatorLambda } from "../channel";
import { CacheInfoCheck, Id, TR } from "../types";
import { CacheProvider } from "../provider";
import { CacheRemote } from "../remote";
import { CacheInvalidatorConsumer } from "../invalidator";
export declare class CacheHubImpl implements CacheHub, CacheHubSecure {
private readonly _segmentCreators;
private readonly _entityCreators;
private readonly _channelCreators;
private readonly _clientCreators;
private readonly _segmentMap;
private readonly _entityMap;
private readonly _invalidatorConsumerMap;
private readonly _segments;
private readonly _providers;
private readonly _clients;
private readonly _defaults;
readonly prop: Readonly<CacheHubProp>;
constructor();
get segments(): Array<CacheSegment>;
get clients(): Array<CacheClient>;
get providers(): Array<CacheProvider>;
registerClient(provider: CacheProvider, native: unknown, description?: string): CacheClient;
newSegment(client: CacheClient, path: string, fn: CacheSegmentPropLambda, id?: string): CacheSegment;
newRemote(id: string): CacheRemote;
info(check: CacheInfoCheck): Promise<CacheHubInfo>;
changeProp(lambda: CacheHubPropLambda): void;
getInvalidatorConsumer(id: string): CacheInvalidatorConsumer;
getEntity<A extends TR = TR>(id: string): CacheEntity<A>;
getSegment(id: string): CacheSegment;
get $secure(): CacheHubSecure;
get $back(): CacheHub;
$getSegmentCreator(provider: CacheProvider): CacheSegmentCreatorLambda;
$setSegmentCreator(provider: CacheProvider, lambda: CacheSegmentCreatorLambda): void;
$getEntityCreator(provider: CacheProvider): CacheEntityCreatorLambda<TR>;
$setEntityCreator(provider: CacheProvider, lambda: CacheEntityCreatorLambda<TR>): void;
$getChannelCreator(provider: CacheProvider): CacheChannelCreatorLambda<TR, Id>;
$setChannelCreator(provider: CacheProvider, lambda: CacheChannelCreatorLambda<TR, Id>): void;
$getClientCreator(provider: CacheProvider): CacheClientCreatorLambda;
$setClientCreator(provider: CacheProvider, lambda: CacheClientCreatorLambda): void;
$setProp(prop: CacheHubPropData): void;
$checkInvalidatorConsumer(consumer: CacheInvalidatorConsumer): void;
$checkEntity(entity: CacheEntityDef): void;
$checkSegment(segment: CacheSegment): void;
}