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 { 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; 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; /** * Persist an entity * @param entity * @returns {Promise} */ create(ctx: IRequestContext, schema: Schema, entity: any): Promise<{}>; /** * Update an entity * @param entity * @returns {Promise} */ update(ctx: IRequestContext, schema: Schema, entity: any): Promise<{}>; }