naga-audit-service
Version:
A comprehensive audit service library for NestJS applications with MongoDB support
19 lines • 1.44 kB
TypeScript
import { AggregateOptions, FilterQuery, PipelineStage, ProjectionType, QueryOptions, UpdateQuery } from "mongoose";
import { BulkWriteOpResult, UpdatedModel, WriteOperation } from "./mongo-lib.types";
export declare abstract class IMongoRepository<T, K, L> {
abstract findOne(filters: FilterQuery<T>, projections?: ProjectionType<T>, options?: QueryOptions<T>): Promise<K>;
abstract find(filters: FilterQuery<T>, projections?: ProjectionType<T>, options?: QueryOptions<T>): Promise<K[]>;
abstract findOneAndUpdate(filters: FilterQuery<T>, updateQuery: UpdateQuery<T>, options?: QueryOptions<T>): Promise<K>;
abstract findOneAndDelete(filters: FilterQuery<T>, options?: QueryOptions<T>): Promise<K>;
abstract updateMany(filters: FilterQuery<T>, updateQuery: UpdateQuery<T>): Promise<UpdatedModel>;
abstract countDocuments(filters: FilterQuery<T>, options?: QueryOptions<T>): Promise<number>;
abstract create(payload: Partial<K>): Promise<L>;
abstract aggregate<L>(pipeline: PipelineStage[], options?: AggregateOptions): Promise<L[]>;
abstract bulkWrite(operations: WriteOperation[]): Promise<BulkWriteOpResult>;
abstract distinct(field: string, filters?: FilterQuery<T>): Promise<any[]>;
abstract deleteMany(filters: FilterQuery<T>): Promise<{
deletedCount: number;
}>;
abstract insertMany(payload: Partial<K>[]): Promise<K[]>;
}
//# sourceMappingURL=repository.abstract.d.ts.map