UNPKG

@orbit/core

Version:

Core library for Orbit - a flexible data access and synchronization layer.

40 lines (39 loc) 1.32 kB
import { Evented } from './evented'; import { Bucket } from './bucket'; export interface LogOptions { name?: string; data?: string[]; bucket?: Bucket<string[]>; } export interface Log extends Evented<'append' | 'truncate' | 'rollback' | 'clear' | 'change'> { } /** * Logs track a series of unique events that have occurred. Each event is * tracked based on its unique id. The log only tracks the ids but currently * does not track any details. * * Logs can automatically be persisted by assigning them a bucket. */ export declare class Log { private _name?; private _bucket?; private _data; reified: Promise<void>; constructor(options?: LogOptions); get name(): string | undefined; get bucket(): Bucket<string[]> | undefined; get head(): string; get entries(): string[]; get length(): number; append(...ids: string[]): Promise<void>; before(id: string, relativePosition?: number): string[]; after(id: string, relativePosition?: number): string[]; truncate(id: string, relativePosition?: number): Promise<void>; rollback(id: string, relativePosition?: number): Promise<void>; clear(): Promise<void>; contains(id: string): boolean; private _persist; private _reify; private _loadDataFromBucket; private _initData; }