UNPKG

@hiki9/rich-domain

Version:

Rich Domain is a library that provides a set of tools to help you build complex business logic in NodeJS using Domain Driven Design principles.

31 lines 1.92 kB
import { BaseAdapter } from '../core/application/adapter'; import { RepositoryImplementation } from '../core/application/repository'; import { Pagination } from '../core/common/pagination'; import { PaginationCriteria } from '../core/common/pagination-criteria'; import { Aggregate } from '../core/domain/aggregate'; import { WriteOptions } from '../core/domain/repository'; import { UnitOfWorkService } from './unit-of-work.service'; type IPrismaService = { $disconnect: () => Promise<any>; }; export declare abstract class PrismaRepository<PrismaService extends IPrismaService, Domain extends Aggregate<any>, Persistence> extends RepositoryImplementation<any> { protected readonly prisma: PrismaService; protected readonly adapterToDomain: BaseAdapter<Persistence, Domain>; protected readonly adapterToPersistence: BaseAdapter<Domain, any>; protected readonly unitOfWorkService: UnitOfWorkService; constructor(prisma: PrismaService, adapterToDomain: BaseAdapter<Persistence, Domain>, adapterToPersistence: BaseAdapter<Domain, any>, unitOfWorkService: UnitOfWorkService); protected abstract findIncludes: any; protected abstract uniqueIncludes: any; protected abstract generateSearchQuery(search: string): any; protected getContext(options?: WriteOptions): PrismaService; protected generateFindQuery(criteria: PaginationCriteria): any; find(criteria: PaginationCriteria): Promise<Pagination<Domain>>; findById(id: string): Promise<Domain | null>; create(entity: Domain, options?: WriteOptions<unknown>): Promise<void>; update(entity: Domain, options?: WriteOptions<unknown>): Promise<void>; delete(entity: Domain, options?: WriteOptions<unknown>): Promise<void>; forceCloseConnection(): Promise<void>; } export declare function parseQueryWithDots(field: string, verb: string, value: any): {}; export {}; //# sourceMappingURL=prisma.repository.d.ts.map