20 lines
560 B
TypeScript
20 lines
560 B
TypeScript
export abstract class BaseMapper<TEntity, TShortDto, TDetailDto> {
|
|
abstract toShortDto(entity: TEntity): TShortDto;
|
|
abstract toDetailDto(entity: TEntity): TDetailDto;
|
|
|
|
toShortDtoList(entities: TEntity[]): TShortDto[] {
|
|
return entities.map(entity => this.toShortDto(entity));
|
|
}
|
|
|
|
toDetailDtoList(entities: TEntity[]): TDetailDto[] {
|
|
return entities.map(entity => this.toDetailDto(entity));
|
|
}
|
|
|
|
static toShortDtoListStatic<T, TDto>(
|
|
entities: T[],
|
|
mapperFn: (entity: T) => TDto
|
|
): TDto[] {
|
|
return entities.map(mapperFn);
|
|
}
|
|
}
|