gamoraa-mongostore
Version:
Plugin provides firestore kind of functionality but based on mongodb.
42 lines (41 loc) • 1.73 kB
TypeScript
import { GrpcServerCallContext, GrpcServerMiddleware } from 'gamoraa';
import { Connection, Model } from 'mongoose';
export declare type roleResolveHandler = (context: GrpcServerCallContext<any, any>) => Promise<string>;
export interface ModelRouteConfig {
readonly disable?: boolean;
readonly checkPermission?: boolean;
readonly middleware?: GrpcServerMiddleware<any, any> | ReadonlyArray<GrpcServerMiddleware<any, any>>;
roleResolver?: roleResolveHandler;
}
export interface ModelServiceConfig {
readonly model: Model<any>;
readonly readRoles?: ReadonlyArray<string>;
readonly writeRoles?: ReadonlyArray<string>;
readonly create?: ModelRouteConfig;
readonly insertMany?: ModelRouteConfig;
readonly findById?: ModelRouteConfig;
readonly findOne?: ModelRouteConfig;
readonly find?: ModelRouteConfig;
readonly findAndStreamResponse?: ModelRouteConfig;
readonly findLive?: ModelRouteConfig;
readonly findByIdAndUpdate?: ModelRouteConfig;
readonly findOneAndUpdate?: ModelRouteConfig;
readonly updateMany?: ModelRouteConfig;
readonly findByIdAndDelete?: ModelRouteConfig;
readonly findOneAndDelete?: ModelRouteConfig;
readonly deleteMany?: ModelRouteConfig;
readonly countDocuments?: ModelRouteConfig;
readonly estimatedDocumentCount?: ModelRouteConfig;
readonly watch?: ModelRouteConfig;
}
export interface MongoStoreServiceConfig {
readonly middleware?: GrpcServerMiddleware<any, any> | ReadonlyArray<GrpcServerMiddleware<any, any>>;
readonly connection?: Connection;
readonly modelsOptions?: ReadonlyArray<ModelServiceConfig>;
}
export declare enum ActionType {
Create = 0,
Read = 1,
Update = 2,
Delete = 3
}