UNPKG

@ournet/domain

Version:
23 lines (22 loc) 1.24 kB
import { BaseEntity, BaseEntityId } from "./entities"; import { Repository, RepositoryUpdateData, RepositoryAccessOptions } from "./repository"; import { EntityValidator } from "./entity-validator"; export declare abstract class BaseRepository<T extends BaseEntity> implements Repository<T> { protected validator: EntityValidator<T>; constructor(validator: EntityValidator<T>); create(data: T): Promise<T>; put(data: T): Promise<T>; update(data: RepositoryUpdateData<T>): Promise<T>; protected beforeCreate(data: T): T; protected beforeUpdate(data: RepositoryUpdateData<T>): RepositoryUpdateData<T>; protected beforePut(data: T): T; abstract innerCreate(data: T): Promise<T>; abstract innerUpdate(data: RepositoryUpdateData<T>): Promise<T>; innerPut(_data: T): Promise<T>; abstract delete(id: BaseEntityId): Promise<boolean>; abstract getById(id: BaseEntityId, options?: RepositoryAccessOptions<T>): Promise<T | null>; abstract getByIds(ids: BaseEntityId[], options?: RepositoryAccessOptions<T>): Promise<T[]>; abstract exists(id: BaseEntityId): Promise<boolean>; abstract deleteStorage(): Promise<void>; abstract createStorage(): Promise<void>; }