@orbit/core
Version:
Core library for Orbit - a flexible data access and synchronization layer.
40 lines (39 loc) • 1.32 kB
TypeScript
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;
}