bb-inspired
Version:
Core library for BB-inspired NestJS backend
23 lines (22 loc) • 1.1 kB
TypeScript
import { BaseEntity } from './base.entity';
export interface IBaseRepository<T extends BaseEntity> {
findAll(filters?: Partial<T>): Promise<T[]>;
findById(id: string): Promise<T>;
findOne(filters: Partial<T>): Promise<T>;
create(data: Partial<T>): Promise<T>;
update(id: string, data: Partial<T>): Promise<T>;
softDelete(id: string): Promise<boolean>;
hardDelete(id: string): Promise<boolean>;
count(filters?: Partial<T>): Promise<number>;
}
export declare abstract class BaseRepository<T extends BaseEntity> implements IBaseRepository<T> {
abstract findAll(filters?: Partial<T>): Promise<T[]>;
abstract findById(id: string): Promise<T>;
abstract findOne(filters: Partial<T>): Promise<T>;
abstract create(data: Partial<T>): Promise<T>;
abstract update(id: string, data: Partial<T>): Promise<T>;
abstract softDelete(id: string): Promise<boolean>;
abstract hardDelete(id: string): Promise<boolean>;
abstract count(filters?: Partial<T>): Promise<number>;
protected handleNotFound(id: string | unknown, entityName: string): never;
}