Skip to main content

@automapper/core

This is the core package that will handle mapping configurations and mapping operations.

Installation

npm i @automapper/core

or with yarn

yarn add @automapper/core

Usage

@automapper/core exposes createMapper() method to create a Mapper object with a accompany MappingStrategy (read more about Strategies)

createMapper accepts a CreateMapperOptions object with the following shape:

export interface CreateMapperOptions {
strategyInitializer: MappingStrategyInitializer<MetadataIdentifier>;
errorHandler?: ErrorHandler;
namingConventions?: NamingConventionInput;
}

Read more about usage on documentation site

Strategies

A given Mapper is accompanied by a Strategy by providing strategyInitializer when using createMapper().

A Strategy will be responsible for:

  • Discover metadata (eg: classes uses @AutoMap() decorator to discover the metadata of the properties on the Classes)
  • Retrieve metadata: how the metadata should be retrieved from the discovery phase (eg: classes discovers and stores the metadata to Reflect, retrieve metadata simply gets them from Reflect)
  • Apply metadata: how the metadata is applied to the Model

@automapper provides the following official strategies:

  • @automapper/classes: Work with TS/ES6 classes.
  • @automapper/pojos: Work with Interfaces/Types along with POJOs. In projects that do not make use of Class, pojos can be used instead.
  • @automapper/mikro: Work together with TS/ES6 classes along with MikroORM
  • @automapper/sequelize: Work together with TS/ES6 classes along with Sequelize