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.

16 lines 846 B
import { Aggregate as BaseAggregate } from "../domain/aggregate"; import { WriteAndRead } from "../domain/repository"; import { BaseAdapter } from "./adapter"; export type PersistenceContext = unknown; export type Transaction<T> = (context: PersistenceContext) => Promise<T>; export declare abstract class BaseUnitOfWork { abstract startTransaction<T>(callback: Transaction<T>): Promise<T>; abstract commit?(): Promise<void>; abstract rollback?(): Promise<void>; } export declare abstract class RepositoryImplementation<Aggregate extends BaseAggregate<any>> extends WriteAndRead<Aggregate> { protected abstract readonly adapterToDomain: BaseAdapter<unknown, Aggregate>; protected abstract readonly adapterToPersistence: BaseAdapter<Aggregate, unknown>; abstract get model(): any; } //# sourceMappingURL=repository.d.ts.map