om-data-mapper
TypeScript icon, indicating that this package has built-in type declarations

1.6.0 • Public • Published

om-data-mapper

om-data-mapper is a flexible and powerful tool for object mapping in JavaScript and TypeScript, supporting simple mapping, deep mapping, and mapping through composition.

Installation

Install om-data-mapper using npm:

npm i --save om-data-mapper

Features

om-data-mapper offers the following features:

Simple Mapping

Simple mapping allows you to easily transform one object into another by copying or transforming its properties.

const mapper = new UserMapper<User, TargeetUser>({
  name: 'firstName',
  fullName: (user) => `${user.firstName} ${user.lastName}`
});

const target = mapper.execute(sourceObject);

Deep Mapping

Deep mapping supports the mapping of nested objects and allows the construction of complex data structures.

const addressMapper = new AddressMapper<Address, TargetAddress>({
  fullAddress: (address) => `${address.city}, ${address.street}, ${address.appartment}`
})
const mapper = new UserMapper<User, TargetUser>({
  name: 'firstName',
  addressStreet: 'address.street',
  addressCity: 'address.city',
});

const target = mapper.execute(sourceObject);

Mapping with Composition

Mapping with composition allows combining multiple mappers to create complex data transformations.

const addressMapper = new AddressMapper<Address, TargetAddress>({
  fullAddress: (address) => `${address.city}, ${address.street}, ${address.appartment}`
})
const mapper = new UserMapper<User, TargetUser>({
  name: 'firstName',
  address: addressMapper,
});

const target = mapper.execute(sourceObject);

Mapping with nested config

Mapping with composition allows combining multiple mappers to create complex data transformations.

const mapper = new UserMapper<User, TargetUser>({
  name: 'firstName',
  address: {
    city: 'address.city',
    street: 'address.street',
  },
});

const target = mapper.execute(sourceObject);

Array Selectors

om-data-mapper supports array selectors for iterating over arrays and selecting specific elements by index.

[] - Iterates over an array.

[0] - Selects the element at the specified index.

Example: Iterating Over an Array

const mapper = new DataMapper<Source, Target>({
  items: 'array.[]'
});

const source = {
  array: [1, 2, 3]
};

const target = mapper.execute(source);
// target.items will be [1, 2, 3]

Example: Selecting an Element by Index

const mapper = new DataMapper<Source, Target>({
  firstItem: 'array.[0]'
});

const source = {
  array: [1, 2, 3]
};

const target = mapper.execute(source);
// target.firstItem will be 1

UnSafe Mode

You can can pass config to mapper { unsafe: true } then all try/catch will be removed from compile mapper function

new Mapper(mappingConfig, defaultValues, { unsafe: true });

this will greatly improve performance, but errors inside the conversion will not be intercepted.

License

om-data-mapper is distributed under the MIT license. See the LICENSE file in the root directory of the project for more information.

Package Sidebar

Install

npm i om-data-mapper

Weekly Downloads

0

Version

1.6.0

License

MIT

Unpacked Size

29.9 kB

Total Files

19

Last publish

Collaborators

  • isqanderm