Cache
Cache class handles the data exchange with the dispatchers.
Import
import { Cache } from "@hyper-fetch/core"
Source
Package
Parameters
class Cache<Adapter> {
constructor(options: CacheOptionsType) {};
version: string;
storage: CacheStorageType;
options: CacheOptionsType;
lazyStorage: CacheAsyncStorageType;
garbageCollectors: Map<string, Timeout>;
events: { emitCacheData: <Response, Error, Adapter>(data: ResponseType<Response, Error, Adapter> & ResponseDetailsType & { cacheKey: string; cacheTime: number; cached: boolean; hydrated?: boolean; staleTime: number; version: string } & { cached: boolean }, isTriggeredExternally: boolean) => void; emitDelete: (cacheKey: string, isTriggeredExternally: boolean) => void; emitInvalidation: (cacheKey: string, isTriggeredExternally: boolean) => void; onData: <Response, Error, Adapter>(callback: (data: ResponseType<Response, Error, Adapter> & ResponseDetailsType & { cacheKey: string; cacheTime: number; cached: boolean; hydrated?: boolean; staleTime: number; version: string } & { cached: boolean }) => void) => VoidFunction; onDataByKey: <Response, Error, Adapter>(cacheKey: string, callback: (data: CacheValueType<Response, Error, Adapter>) => void) => VoidFunction; onDelete: (callback: (cacheKey: string) => void) => VoidFunction; onDeleteByKey: (cacheKey: string, callback: () => void) => VoidFunction; onInvalidate: (callback: (cacheKey: string) => void) => VoidFunction; onInvalidateByKey: (cacheKey: string, callback: () => void) => VoidFunction };
emitter: EventEmitter;
clear() => Promise<void>;
delete(cacheKey: string) => void;
get<Response, Error>(cacheKey: string) => undefined | CacheValueType<Response, Error, Adapter>;
getAllKeys() => Promise<string[]>;
getLazyKeys() => Promise<string[]>;
getLazyResource<Response, Error>(cacheKey: string) => Promise<undefined | CacheValueType<Response, Error, Adapter>>;
initialize(client: ClientInstance<{ adapter: Adapter }>) => Cache<Adapter>;
invalidate(cacheKeys: string | RegExp | RequestInstance | (string | RegExp | RequestInstance)[]) => void;
keys() => string[];
scheduleGarbageCollector(cacheKey: string) => void;
set<Request>(request: Request, response: CacheSetState<(ResponseType<ExtractResponseType<Request>, ExtractErrorType<Request>, ExtractAdapterType<Request>> & ResponseDetailsType)> & { hydrated?: boolean }) => void;
update<Request>(request: Request, partialResponse: CacheSetState<Partial<ResponseType<ExtractResponseType<Request>, ExtractErrorType<Request>, ExtractAdapterType<Request>> & ResponseDetailsType>>) => void;
}
Parameters
| Name | Type | Description |
|---|---|---|
| options | |
Properties
events
Source
Type
{ emitCacheData: <Response, Error, Adapter>(data: ResponseType<Response, Error, Adapter> & ResponseDetailsType & { cacheKey: string; cacheTime: number; cached: boolean; hydrated?: boolean; staleTime: number; version: string } & { cached: boolean }, isTriggeredExternally: boolean) => void; emitDelete: (cacheKey: string, isTriggeredExternally: boolean) => void; emitInvalidation: (cacheKey: string, isTriggeredExternally: boolean) => void; onData: <Response, Error, Adapter>(callback: (data: ResponseType<Response, Error, Adapter> & ResponseDetailsType & { cacheKey: string; cacheTime: number; cached: boolean; hydrated?: boolean; staleTime: number; version: string } & { cached: boolean }) => void) => VoidFunction; onDataByKey: <Response, Error, Adapter>(cacheKey: string, callback: (data: CacheValueType<Response, Error, Adapter>) => void) => VoidFunction; onDelete: (callback: (cacheKey: string) => void) => VoidFunction; onDeleteByKey: (cacheKey: string, callback: () => void) => VoidFunction; onInvalidate: (callback: (cacheKey: string) => void) => VoidFunction; onInvalidateByKey: (cacheKey: string, callback: () => void) => VoidFunction }
Methods
delete()
Delete record from storages and trigger invalidation event
Source
Preview
delete(cacheKey: string)
Parameters
Parameters
| Name | Type | Description |
|---|---|---|
| cacheKey | |
Returns
void
get()
Get particular record from storage by cacheKey. It will trigger lazyStorage to emit lazy load event for reading it's data.
Source
Preview
get<Response, Error>(cacheKey: string)
Parameters
Parameters
| Name | Type | Description |
|---|---|---|
| cacheKey | |
Returns
undefined | CacheValueType<Response, Error, Adapter>
getAllKeys()
Used to receive keys from sync storage and lazy storage
Source
Preview
getAllKeys()
Returns
Promise<string[]>
getLazyKeys()
Used to receive keys from sync storage and lazy storage
Source
Preview
getLazyKeys()
Returns
Promise<string[]>
getLazyResource()
Used to receive data from lazy storage
Source
Preview
getLazyResource<Response, Error>(cacheKey: string)
Parameters
Parameters
| Name | Type | Description |
|---|---|---|
| cacheKey | |
Returns
Promise<undefined | CacheValueType<Response, Error, Adapter>>
initialize()
Source
Preview
initialize(client: ClientInstance<{ adapter: Adapter }>)
Parameters
Parameters
| Name | Type | Description |
|---|---|---|
| client | |
Returns
Cache<Adapter>
invalidate()
Invalidate cache by cacheKey or partial matching with RegExp It emits invalidation event for each matching cacheKey and sets staleTime to 0 to indicate out of time cache
Source
Preview
invalidate(cacheKeys: string | RegExp | RequestInstance | (string | RegExp | RequestInstance)[])
Parameters
Parameters
| Name | Type | Description |
|---|---|---|
| cacheKeys | |
Returns
void
keys()
Get sync storage keys, lazyStorage keys will not be included
Source
Preview
keys()
Returns
string[]
scheduleGarbageCollector()
Schedule garbage collection for given key
Source
Preview
scheduleGarbageCollector(cacheKey: string)
Parameters
Parameters
| Name | Type | Description |
|---|---|---|
| cacheKey | |
Returns
void
set()
Set the cache data to the storage
Source
Preview
set<Request>(request: Request, response: CacheSetState<(ResponseType<ExtractResponseType<Request>, ExtractErrorType<Request>, ExtractAdapterType<Request>> & ResponseDetailsType)> & { hydrated?: boolean })
Parameters
Parameters
| Name | Type | Description |
|---|---|---|
| request | | |
| response | |
Returns
void
update()
Update the cache data with partial response data
Source
Preview
update<Request>(request: Request, partialResponse: CacheSetState<Partial<ResponseType<ExtractResponseType<Request>, ExtractErrorType<Request>, ExtractAdapterType<Request>> & ResponseDetailsType>>)
Parameters
Parameters
| Name | Type | Description |
|---|---|---|
| request | | |
| partialResponse | |
Returns
void