A wrapper around @nartc/automapper to be used with NestJS as a Module
.
forRoot()
method will be deprecated soon (still available in v3). Please use withMapper()
instead.
This module is a wrapper around @nartc/automapper
so all usage documentations should be referenced at the link below.
Github Pages https://automapper.netlify.com/ Github Repo https://github.com/nartc/mapper
Contributions are appreciated.
npm i -s nestjsx-automapper
Installing nestjsx-automapper
will also install @nartc/automapper
.
Note 1: Please make sure that you've read @nartc/automapper
documentations to familiarize yourself with AutoMapper
's terminology and how to setup your Profile
and such.
AutomapperModule
in AppModule
and call .withMapper()
method@Module({
imports: [AutomapperModule.withMapper()],
})
export class AppModule {}
AutomapperModule.withMapper()
has the following overloads:
static withMapper(name?: string, options?: AutoMapperGlobalSettings);
static withMapper(options?: AutoMapperGlobalSettings);
name
: Name of the AutoMapper
instance being created with withMapper()
. Default to "default"
options
: Check AutoMapperGlobalSettings for more informationnestjsx-automapper
exposes a @Profile()
decorator to decorate your Profile
classes.@Profile()
class UserProfile extends ProfileBase {}
@Profile()
takes in an optional name
argument. This is the name
if the AutoMapper
instance you use to create the instance with withMapper()
. Default to "default"
Usually, NestJS
will have many Feature Modules for each of the Domain Models. Hence, a Profile
should stay in close to where the feature module is.
If you want to separate Profile
out to a separate file, then you need to make sure that file gets executed by importing it somewhere (again, the module is a good place).
AutoMapper
instance in your Injectable
@Injectable()
export class UserService {
constructor(@InjectMapper() private readonly mapper: AutoMapper) {}
}
@InjectMapper()
takes in an optional name
argument which will tell the decorator which AutoMapper
instance to inject. Default to "default"
InjectMapper
is imported fromnestjsx-automapper
.AutoMapper
is imported from@nartc/automapper
AutoMapper
on your models// ...
const result = await newUser.save();
return this.mapper.map(result.toJSON(), UserVm, User);
Name of the AutoMapper instance
Generated using TypeDoc
Inject the AutoMapper intsance with name.
default