UNPKG

vulcain-corejs

Version:
54 lines (53 loc) 1.83 kB
import { IProvider, QueryOptions } from "../provider"; import { Schema } from "../../schemas/schema"; import { IRequestContext } from "../../pipeline/common"; import { QueryResult } from '../../pipeline/handlers/query/queryResult'; /** * Default memory provider */ export declare class MemoryProvider implements IProvider<any> { private dataFolder; private state; readonly address: string; /** * Create a memory provider instance. * @param dataFolder : (optional) if provided, data will be persisted on disk on EVERY create, update or delete */ constructor(dataFolder?: string); initialize(tenant: string): () => void; private ensureSchema(schema); private save(schema); /** * Return a list of entities * @param options * @returns {Promise} */ getAll(ctx: IRequestContext, schema: Schema, options: QueryOptions): Promise<QueryResult>; static Query(list: any, query: any, page: number, pageSize: number, cloneResult?: boolean): any[]; private static filter(list, query, cloneResult); private static take(iterator, page, pageSize); /** * Read an entity * @param name * @returns {Promise} */ get(ctx: IRequestContext, schema: Schema, id: string): Promise<{}>; /** * Delete an entity * @param id * @returns {Promise} */ delete(ctx: IRequestContext, schema: Schema, id: string | number): Promise<boolean>; /** * Persist an entity * @param entity * @returns {Promise} */ create(ctx: IRequestContext, schema: Schema, entity: any): Promise<{}>; /** * Update an entity * @param entity * @returns {Promise<T>} */ update(ctx: IRequestContext, schema: Schema, entity: any): Promise<{}>; }