Installation
Install AutoMapper TypeScript and configure a class, POJO, ORM, or NestJS project.
Choose a strategy
Install @automapper/core and one strategy.
# Classes
npm install @automapper/core @automapper/classes reflect-metadata
# POJOs
npm install @automapper/core @automapper/pojos
# MikroORM
npm install @automapper/core @automapper/classes @automapper/mikro reflect-metadata
# Sequelize
npm install @automapper/core @automapper/classes @automapper/sequelize reflect-metadata# Classes
pnpm add @automapper/core @automapper/classes reflect-metadata
# POJOs
pnpm add @automapper/core @automapper/pojos
# MikroORM
pnpm add @automapper/core @automapper/classes @automapper/mikro reflect-metadata
# Sequelize
pnpm add @automapper/core @automapper/classes @automapper/sequelize reflect-metadata# Classes
bun add @automapper/core @automapper/classes reflect-metadata
# POJOs
bun add @automapper/core @automapper/pojos
# MikroORM
bun add @automapper/core @automapper/classes @automapper/mikro reflect-metadata
# Sequelize
bun add @automapper/core @automapper/classes @automapper/sequelize reflect-metadataConfigure class metadata
The classes-based strategies use decorators and emitted design metadata:
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
Import reflect-metadata once, before decorated models are evaluated:
import "reflect-metadata";
ESM setup
For Node.js applications, use an ESM-compatible package configuration and TypeScript module resolution. For example:
{
"type": "module"
}
Your framework or bundler may provide its own ESM configuration. The important requirement is that it does not attempt to load AutoMapper packages with CommonJS require().