UNPKG

@river-build/sdk

Version:

For more details, visit the following resources:

37 lines 1.19 kB
import { Observable } from './observable'; import { LoadPriority, Store, Identifiable } from '../store/store'; export interface PersistedOpts { tableName: string; } export type PersistedModel<T> = { status: 'loading'; data: T; } | { status: 'loaded'; data: T; } | { status: 'error'; data: T; error: Error; }; interface Storable { } export declare function persistedObservable(options: PersistedOpts): <T extends new (...args: any[]) => Storable>(constructor: T) => { new (...args: any[]): {}; tableName: string; } & T; export declare class PersistedObservable<T extends Identifiable> extends Observable<PersistedModel<T>> implements Storable { protected tableName: string; protected readonly store: Store; protected readonly loadPriority: LoadPriority; constructor(initialValue: T, store: Store, loadPriority?: LoadPriority); protected load(): void; get value(): PersistedModel<T>; setValue(_newValue: PersistedModel<T>): void; get data(): T; setData(newDataPartial: Partial<T>): void; protected onLoaded(): void; protected onSaved(): void; } export {}; //# sourceMappingURL=persistedObservable.d.ts.map