@darlean/core
Version:
Darlean core functionality for creating applications that define, expose and host actors
23 lines (22 loc) • 1.54 kB
TypeScript
import { IMultiChunkTableSearchRequest, IPersistable, ITableIndexItem, ITablePersistence, ITablePutResponse, ITableSearchItem, ITableSearchRequest, ITableSearchResponse, ITablesService } from '@darlean/base';
import { IDeSer } from '@darlean/utils';
/**
* Implementation of persistence that uses a table as persistence.
*
* Although this class implements persistence, it does not implement {@link IPersistence}, because it is too fundamentally
* different. One such difference is that it only understands "just keys", not "partition" or "sort" keys.
*/
export declare class TablePersistence<T> implements ITablePersistence<T> {
private deser;
private service;
private specifier;
private indexer;
constructor(service: ITablesService, indexer: (item: T) => ITableIndexItem[], deser: IDeSer, specifier?: string);
search(options: ITableSearchRequest): Promise<ITableSearchResponse>;
searchChunks(options: ITableSearchRequest & IMultiChunkTableSearchRequest): AsyncGenerator<ITableSearchResponse, void>;
searchItems(options: ITableSearchRequest & IMultiChunkTableSearchRequest): AsyncGenerator<ITableSearchItem, void>;
persistable(key: string[], value: T | undefined): IPersistable<T>;
load(key: string[]): Promise<IPersistable<T>>;
loadImpl(key: string[]): Promise<[value: T | undefined, version: string | undefined, baseline: string | undefined]>;
storeImpl(key: string[], value: T | undefined, version: string, baseline: string | undefined): Promise<ITablePutResponse>;
}