@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
TypeScript
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