json-crdt-server
Version:
JSON CRDT server and syncing local-first browser client
31 lines (30 loc) • 1.4 kB
TypeScript
import type * as types from './types';
export declare class MemoryBlock {
readonly start: types.StoreSnapshot;
readonly data: types.StoreBlock;
readonly history: types.StoreBatch[];
constructor(start: types.StoreSnapshot, data: types.StoreBlock, history: types.StoreBatch[]);
}
export declare class MemoryStore implements types.Store {
protected readonly blocks: Map<string, MemoryBlock>;
get(id: string): Promise<types.StoreGetResult | undefined>;
getSnapshot(id: string, seq: number): Promise<{
snapshot: types.StoreSnapshot;
batches: types.StoreBatch[];
}>;
exists(id: string): Promise<boolean>;
seq(id: string): Promise<number | undefined>;
create(start: types.StoreSnapshot, end: types.StoreSnapshot, batch?: types.StoreIncomingBatch): Promise<types.StoreCreateResult>;
push(snapshot0: types.StoreIncomingSnapshot, batch0: types.StoreIncomingBatch): Promise<types.StorePushResult>;
compact(id: string, to: number, advance: types.Advance): Promise<void>;
scan(id: string, min: number, max: number): Promise<types.StoreBatch[]>;
remove(id: string): Promise<boolean>;
private removeSync;
stats(): {
blocks: number;
batches: number;
};
removeOlderThan(ts: number): Promise<void>;
removeAccessedBefore(ts: number, limit?: number): Promise<void>;
removeOldest(x: number): Promise<void>;
}