@btc-vision/bsi-common
Version:
Common library for OP_NET.
22 lines (21 loc) • 1.98 kB
TypeScript
import { Logger } from '@btc-vision/logger';
import { AnyBulkWriteOperation, ClientSession, Collection, Db, Filter, OperationOptions, Sort } from 'mongodb';
import { IBaseDocument } from '../documents/interfaces/IBaseDocument.js';
import { PagingQueryInfo, PagingQueryResult } from './PagingQuery.js';
export declare abstract class BaseRepository<TDocument extends IBaseDocument> extends Logger {
protected _db: Db;
protected constructor(db: Db);
delete(criteria: Partial<Filter<TDocument>>, currentSession?: ClientSession): Promise<number>;
getAll(criteria?: Partial<Filter<TDocument>>, currentSession?: ClientSession, sort?: Sort): Promise<TDocument[]>;
getCount(criteria?: Partial<Filter<TDocument>>, currentSession?: ClientSession): Promise<number>;
queryOne(criteria: Partial<Filter<TDocument>>, currentSession?: ClientSession, sort?: Sort): Promise<TDocument | null>;
queryMany(criteria: Partial<Filter<TDocument>>, currentSession?: ClientSession, sort?: Sort): Promise<TDocument[]>;
queryManyAndSortPaged(criteria: Partial<Filter<TDocument>>, sort: Sort, pagingQueryInfo: PagingQueryInfo, currentSession?: ClientSession): Promise<PagingQueryResult<TDocument>>;
queryManyAndSort(criteria: Partial<Filter<TDocument>>, sort: Sort, currentSession?: ClientSession): Promise<TDocument[]>;
save(criteria: Partial<Filter<TDocument>>, document: TDocument, currentSession?: ClientSession): Promise<void>;
updatePartial(criteria: Partial<Filter<TDocument>>, document: Partial<TDocument>, currentSession?: ClientSession): Promise<void>;
bulkWrite(operations: AnyBulkWriteOperation<TDocument>[], currentSession?: ClientSession): Promise<void>;
updatePartialWithFilter(criteria: Partial<Filter<TDocument>>, document: Partial<Filter<TDocument>>, currentSession?: ClientSession): Promise<void>;
protected abstract getCollection(): Collection<TDocument>;
protected getOptions(currentSession?: ClientSession): OperationOptions;
}