NestJS's interceptor for @automapper.
Install
npm install --save @automapper-add-on/interceptor
yarn add @automapper-add-on/interceptor
pnpm add @automapper-add-on/interceptor
Usage
import { Get, Controller } from '@nestjs/common';
import { InjectRepository } from '@mikro-orm/nestjs';
import {
SkipMapper,
UseMapperInterceptor,
UseLocalMapperInterceptor,
} from '@automapper-add-on/interceptor';
import type { EntityRepository } from '@mikro-orm/postgresql';
import { Post as PostModel } from 'db/models/Post';
import { PostVM } from './posts.vm';
@UseMapperInterceptor(PostModel, PostVM)
@Controller('posts')
export class PostsController {
public constructor(
@InjectRepository(PostModel)
private readonly postRepository: EntityRepository<PostModel>,
) {}
@UseLocalMapperInterceptor(PostModel, PostVM, {
mapperName: 'classes',
})
@Get()
public all(): Promise<PostModel[]> {
return this.postRepository.findAll();
}
@Get()
public findOne(): Promise<PostModel> {
return this.postRepository.findOneOrFail({
id: 1,
});
}
@SkipMapper()
@Get('skip-mapper')
public skipMapper(): string[] {
return ['those value', 'wont be transformed'];
}
}