vulcain-corejs
Version:
Vulcain micro-service framework
54 lines (53 loc) • 1.83 kB
TypeScript
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<{}>;
}