gamoraa-mongostore
Version:
Plugin provides firestore kind of functionality but based on mongodb.
127 lines (126 loc) • 3.37 kB
TypeScript
import GrpcBoom from 'grpc-boom';
import { ChangeStream } from 'mongodb';
import { Model, QueryCursor } from 'mongoose';
import { GrpcServerMiddleware, GrpcServerCallContext } from 'gamoraa';
import { ModelRouteConfig, ModelServiceConfig, ActionType } from '../types';
/**
*
* @param modelOptions
*/
export declare function createModelsMap(modelOptions: ReadonlyArray<ModelServiceConfig>): Record<string, ModelServiceConfig>;
/**
*
* @param action
* @param readRoles
* @param writeRoles
* @param routeConfig
*/
export declare function createRouteMiddlewares(action: ActionType, readRoles: ReadonlyArray<string> | undefined, writeRoles: ReadonlyArray<string> | undefined, routeConfig: ModelRouteConfig): ReadonlyArray<GrpcServerMiddleware<any, any>>;
/**
*
* @param context
* @param routeMiddlewares
*/
export declare function executeRouteMiddlewares(context: GrpcServerCallContext<any, any>, routeMiddlewares: ReadonlyArray<GrpcServerMiddleware<any, any>>): Promise<unknown>;
/**
*
* @param model
* @param modelsMap
*/
export declare function checkModelExist(model: string, modelsMap: Record<string, ModelServiceConfig>): GrpcBoom | undefined;
/**
*
* @param model
* @param request
*/
export declare function createDocument(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function insertManyDocuments(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function findByIdDocument(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function findOneDocument(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function findDocuments(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function findDocumentsAndStreamResponse(model: Model<any>, request: any): QueryCursor<any>;
/**
*
* @param model
* @param request
*/
export declare function findDocumentsLive(model: Model<any>, request: any): ChangeStream;
/**
*
* @param model
* @param request
*/
export declare function findByIdAndUpdateDocument(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function findOneAndUpdateDocument(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function updateManyDocuments(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function findByIdAndDeleteDocument(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function findOneAndDeleteDocument(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function deleteManyDocuments(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function countDocumentsUtil(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function estimatedDocumentCountUtil(model: Model<any>, request: any): Promise<any>;
/**
*
* @param model
* @param request
*/
export declare function watchUtil(model: Model<any>, request: any): ChangeStream;