AutoMapper
An object-to-object mapper by convention for TypeScript.

Migrations to v6
initialize()
has been deprecated in v6
. Please use createMap()
, addProfile()
, and/or withGlobalSettings()
directly
- Mapping operations have been rewritten as individual functions to support tree-shaking, please migrate your
mapping configurations
to use those
Mapper.createMap(Source, Destination)
.forMember(d => d.destMember, opts => opts.mapFrom(s => s.sourceMember);
Mapper.createMap(Source, Destination)
.forMember(d => d.destMember, mapFrom(s => s.sourceMember))
- Pre-Condition:
preCondition()
is also a separate function. Use in v6 as follow
Mapper.createMap(Source, Destination).forMember(
d => d.destMember,
opts => opts.preCondition(predicate).mapFrom(s => s.sourceMember)
);
Mapper.createMap(Source, Destination).forMember(
d => d.destMember,
preCondition(predicate),
mapFrom(s => s.sourceMember)
);
Migrations from automapper-nartc
The only migration step you need is to modify forMember()
method.
In automapper-nartc
, forMember()
takes in a property string
as the first argument. Now, forMember()
in @nartc/automapper
takes in a selector
instead. This wil allow reverseMap()
to work better.
Mapper.createMap(User, UserVm)
.forMember('fullName', opts => opts.mapFrom(...));
Mapper.createMap(User, UserVm)
.forMember(dest => dest.fullName, opts => opts.mapFrom(...));
Migrations to v3
- Change
@Expose()
and @ExposedType()
to @AutoMap()
class User {
@Expose()
firstName: string;
@ExposedType(() => Profile)
profile: Profile;
}
class User {
@AutoMap()
firstName: string;
@AutoMap(() => Profile)
profile: Profile;
}
Features
So far, the following is supported:
Unsupported features:
Circular Dependencies
Please check out the Circular Dependencies Documentations
Documentations
Check out the AutoMapper TypeScript Documentations
Demo
Codesandbox Demo
Contribution
Contribution of any kind is always welcomed.
MIT License