@pilotlab/data
Version:
A luxurious user experience framework, developed by your friends at Pilot.
34 lines (33 loc) • 1.53 kB
TypeScript
import { MapList } from '@pilotlab/collections';
import { IPromise } from '@pilotlab/result';
import { Signal } from '@pilotlab/signals';
export interface IDataStore {
connect(): IPromise<boolean>;
updated: Signal<any>;
/**
* Adds a new value to the data store, or updates the object if it already exists.
* The boolean returned in the result reflects the success or failure of the operation.
* @param data {Object} The value to be added or updated in the data store.
*/
save(data: any, path?: string): IPromise<any>;
/**
* Saves all the key/value pairs provided by the map.
* When all the values have been saved to the store, returns a completed Result
* containing a list of boolean values, representing the success or failure of the
* save action for each item.
*/
saveAll(data: MapList<string, any>): IPromise<any>;
/**
* This returns a Result which completes when the data object has been retrieved.
* The Attribute returned in the Result will provided the requested data.
* @param key {string} The key for the requested value
*/
get(path?: string): IPromise<any>;
/**
* This returns a Result which completes when the data object that's been deleted.
* The boolean returned in the result reflects the success or failure of the operation.
* NOTE: Remember to check the data store for references to this data before removing.
*/
delete(path?: string): IPromise<boolean>;
}
export default IDataStore;