mapper.js

Use this tool to map a JavaScript object from a data schema to another data schema
Use with parsed JSON responses or any native JavaScript object structures.
Code example:
'use strict';
const {mapper} = require('jul-data-mapper');

const oSrc = {
    server: 'express',
    items: [
        {id: 101, name: 'Ana'},
        {id: 102, name: 'Bell'},
        {id: 103, name: 'Kevin'}
    ],
    pref: {perPage: 25, filter: false},
    grid: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
};
const oDest = {version: '1.0.0'};
const oMap = {
    'server': 'result.source',
    'items[$u].id': 'result.entries[$u].uid',
    'items[$u].name': 'result.entries[$u].fullName',
    'grid[$i][$j]': 'map[$i][$j].value',
    pref: 'result.show'
};

// source -> destination
console.info(
    mapper(oDest, oSrc, oMap)
);

// destination -> source
const oReverseMap = Object.fromEntries(Object.entries(oMap).map(aItem => aItem.reverse()));
console.info(
    mapper({}, oDest, oReverseMap)
);

// using a more compact form of mapping
const oCompactMap = {
    'server': 'result.source',
    'items[$u]': {
        _mapTo: 'result.entries[$u]',
        id: 'uid',
        name: 'fullName'
    },
    'grid[$i][$j]': 'map[$i][$j].value',
    pref: 'result.show'
};
console.info(
    mapper({}, oSrc, oCompactMap, {prefixProp: '_mapTo'})
);
Version:
  • 1.1.3
Author:
Source: