UNPKG

@btc-vision/bsi-common

Version:

Common library for OP_NET.

22 lines (21 loc) 1.98 kB
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; }