bimedia-objectmapper
object mapper for node
Object Mapper Module
This module allow to map keys and values from an object to an other. Mapping uses a tranformation rules. There are 3 transformation rules types :
- identity : copy the attribute and value to the target object.
- alias : rename the attribute in the target object (value is unchanged).
- complex : apply tranformation rule provided to change attribute name and value.
Installation
npm install --save bimedia-objectmapper
Usage
Simple usecase
var ObjectMapper = ;var mapper = ;var result = ;// {'clé': 'value'}
Streams
var objectMapper = fs = JSONStream = ; var mapper = ;fs ;
Arrays
var objectMapper = ;var mapper = ;var sources = key:'value1' key:'value2' key:'value3';var result = sources;//[ { 'clé': 'value1' },// { 'clé': 'value2' },// { 'clé': 'value3' } ]
Mapping rules definitions
Identity Rule
No specific rule is needed. Attribute is copied to target object.
Simple Rule (alias)
Declare a constant as attribute value. Example :
var rules = "trxpvptpv": "trxid";
This rule renames trxpvptpv attribute in source object, to trxid in target object.
Complex Rule
Define an object matching the source attribute. Example :
var rules = 'state' : name : 'currentState' { if val == 'Y' return 'REFUNDED'; return val == 'N' ? 'REFUSED' : 'PENDING'; } ;
Or directly with a function :
var rules = { var value; if val == 'Y' value = 'REFUNDED'; value = val == 'N' ? 'REFUSED' : 'PENDING'; return key: 'currentState' value: value; } };
This 2 examples transforms the state attribute in source object to an currentState attribute in target object.
Options
Mapping can be customize with the second argmuent of ObjectMapper
:
For instance to disable identity mapping by default :
var mapper = ;
Or to specify a default mapping function :
var mapper = ;
supported options
defaults
: (function | boolean) define a default mapping function. By defautObjectMapper.identity
.