UNPKG

@darlean/tables-suite

Version:

Tables Suite that provides fast, indexed access to structured data

44 lines (43 loc) 2.15 kB
/// <reference types="node" /> import { ITableIndexItem, IPersistenceService, ITableGetRequest, ITableGetResponse, ITablePutRequest, ITablePutResponse, ITableSearchRequest, ITableSearchResponse, ITablesService } from '@darlean/base'; import { BufferOf, IDeSer } from '@darlean/utils'; interface IIndexReference { name: string; keys: string[]; hash: string; } interface IBaseLine { indexes: IIndexReference[]; } type Operator = 'none' | 'exact' | 'prefix' | 'lte' | 'gte' | 'between'; export declare class TableActor implements ITablesService { private id; private internalId; private persistence; private shard; private deser; constructor(persistence: IPersistenceService, deser: IDeSer, id: string[], shard: number); put(request: ITablePutRequest): Promise<ITablePutResponse>; get(request: ITableGetRequest): Promise<ITableGetResponse>; search(request: ITableSearchRequest): Promise<ITableSearchResponse>; searchBuffer(request: ITableSearchRequest): Promise<BufferOf<ITableSearchResponse>>; private searchImpl; protected extractDataFields(data?: { [key: string]: unknown; } | Buffer): { [key: string]: unknown; } | undefined; protected extractDataBuffer(data?: { [key: string]: unknown; } | Buffer): Buffer | undefined; protected deriveKeyInfo(operator: Operator, sortKey: string[] | undefined, sortKey2: string[] | undefined): [string[] | undefined, string[] | undefined, 'strict' | 'loose']; protected prefixSortKey(prefix: string[], key: string[] | undefined): string[]; protected fetchBaseline(keys: string[], specifier: string | undefined): Promise<IBaseLine>; protected getImpl(request: ITableGetRequest): Promise<ITableGetResponse>; protected calculateHash(item: ITableIndexItem): string; protected encodeBaseline(baseline: IBaseLine | undefined): string; protected decodeBaseline(baseline: string | undefined): IBaseLine | undefined; protected enhanceProjection(filter: string[]): string[]; protected isEmptyProjection(filter?: string[]): boolean; } export {};