UNPKG

@pilotlab/data

Version:

A luxurious user experience framework, developed by your friends at Pilot.

72 lines (48 loc) 2.1 kB
import { Signal } from '@pilotlab/signals'; import IAttribute from '../attributes/interfaces/iAttribute'; import IAttributes from '../attributes/interfaces/iAttributes'; import IAttributeChangeOptions from '../attributes/interfaces/iAttributeChangeOptions'; import IAttributeUpdateTracker from '../attributes/interfaces/iAttributeUpdateTracker'; import AttributeEventArgs from '../attributes/attributeEventArgs'; import { ProgressTracker } from '@pilotlab/progress'; import { IInitializable } from '@pilotlab/initializable'; import { IPromise } from "@pilotlab/result"; import IDataStore from "./iDataStore"; export interface IData extends IInitializable { readonly revision:string; /** * An SHA-1 hash representing the precise contents of the associated blob or text. * Can be used to check the uniqueness of a data object to avoid storing duplicates. */ readonly hash:IAttribute; isAutoHash:boolean; store:IDataStore; isSaveDataTypes:boolean; /** * Toggles auto-save functionality. * Can be used to pause auto-saving while changes to the data are batched. */ isAutoSave:boolean; /*====================================================================* START: Signals *====================================================================*/ storeSet:Signal<IDataStore>; /** * Dispatched after a response is received back from the data store when data has been saved. * @type {Signal<any>} Completes with the response from the data store. */ saved:Signal<any>; saveTriggered:Signal<AttributeEventArgs<any>>; /*====================================================================* START: Public Methods *====================================================================*/ save():IPromise<any>; autoSave():void; delete():IPromise<boolean>; update( data:(IData | IAttributes | Object | string), changeOptions?:IAttributeChangeOptions, progressTracker?:ProgressTracker ):IAttributeUpdateTracker; } export default IData;