vulcain-corejs
Version:
Vulcain micro-service framework
55 lines (54 loc) • 1.57 kB
TypeScript
import { Logger, RequestContext } from './../../servers/requestContext';
import { IProvider, ListOptions } from "../provider";
import { Schema } from "../../schemas/schema";
/**
* Default mongo provider
*/
export declare class MongoProvider implements IProvider<any> {
private _logger;
private ctx;
private options;
state: {
keyPropertyNameBySchemas: Map<string, string>;
uri: string;
dispose?: () => void;
_mongo?;
};
readonly address: string;
constructor(_logger: Logger, ctx: RequestContext, uri: string, options?: any);
initializeTenantAsync(tenant: string): Promise<{}>;
private ensureSchemaReadyAsync(schema);
/**
* Return a list of entities
* @param options
* @returns {Promise}
*/
getAllAsync(schema: Schema, options: ListOptions): Promise<Array<any>>;
findOneAsync(schema: Schema, query: any): Promise<{}>;
/**
* Read an entity
* @param name
* @returns {Promise}
*/
getAsync(schema: Schema, name: string): Promise<{}>;
/**
* Delete an entity
* @param id
* @returns {Promise}
*/
deleteAsync(schema: Schema, old: string | any): Promise<{}>;
private normalizeErrors(id, err);
/**
* Persist an entity
* @param entity
* @returns {Promise}
*/
createAsync(schema: Schema, entity: any): Promise<{}>;
/**
* Update an entity
* @param entity
* @param old
* @returns {Promise<T>}
*/
updateAsync(schema: Schema, entity: any, old: any): Promise<{}>;
}