UNPKG

@paperbits/common

Version:
55 lines (46 loc) 1.51 kB
import { Query, Page } from "../persistence/query"; /** * Object storage. */ export interface IObjectStorage { /** * Creates an object with specified key in storage. * @template T Type of created object. * @param key string Object key. * @param dataObject T Object. */ addObject<T>(key: string, dataObject: T, changeDescription?: string): Promise<void>; /** * Retrieves an object from storage by specified key. * @template T Type of retrieved object. * @param key string Object key. */ getObject<T>(key: string): Promise<T>; /** * Deletes an object with specfied key in stoage. * @param key string Object key. */ deleteObject(key: string, changeDescription?: string): Promise<void>; /** * Updates an object with specified key in storage. * @template T Type of updated object. * @param key string Object key. * @param dataObject {T} Object. */ updateObject<T>(key: string, dataObject: T, changeDescription?: string): Promise<void>; /** * Returns objects matching search criteria. * @param key {string} Collection key. * @param query {Query<T>} Search query. */ searchObjects<T>(key: string, query?: Query<T>): Promise<Page<T>>; /** * Save changes. * @param delta */ saveChanges?(delta: Object): Promise<void>; /** * Loads data. */ loadData?(): Promise<object>; }