@aequum/in-memory
Version:
aequum in-memory stuff
17 lines (16 loc) • 987 B
TypeScript
import { BaseCRUDLService } from '@aequum/crudl';
import { InMemoryRepository } from '../repositories/in-memory.repository';
export declare class BaseCRUDLInMemoryService<Model extends {
[key in PrimaryKeyField]: any;
}, ModelDto, ModelCreateDto, ModelUpdateDto, ModelFilterType = any, PrimaryKeyField extends string = 'id'> extends BaseCRUDLService {
protected primaryKeyField: PrimaryKeyField;
protected repository: InMemoryRepository<Model, PrimaryKeyField>;
create(data: ModelCreateDto): Promise<ModelDto>;
retrieve(id: Model[PrimaryKeyField]): Promise<ModelDto>;
retrieveBy(filter: ModelFilterType): Promise<ModelDto>;
update(id: Model[PrimaryKeyField], data: ModelUpdateDto): Promise<ModelDto>;
updateBy(filter: ModelFilterType, data: ModelUpdateDto): Promise<ModelDto | ModelDto[]>;
delete(id: Model[PrimaryKeyField]): Promise<void>;
deleteBy(filter: ModelFilterType): Promise<void>;
list(filter?: ModelFilterType): Promise<Model[]>;
}