remapped

Translate objects using dot notated mappings.

remapped

Translate objects using dot notated mappings.

If you need to do something more complex than simply rearranging an object, you should use traverse.

Translate a source object to a new form with a supplied mapping and optional defaults.

source the source data
mapping a destination object whose keys are dot notated string paths to values in the source
defaults a optional defaults object to fill values not found in source

const remapped = require('remapped');
 
var source = {
  id: 0,
  name: 'tyler',
  age: 30,
  nested: {
    id: 0
  }
};
 
var mapping = {
  myId: 'id',
  myName: 'name',
  myAge: 'age',
  dotNotatedKey: 'nested.id',
  myArray: ['name', 'age', {objectAge: 'age'}],
  temp: {
    myNestedId: 'id'
  },
  defaultNull: 'missing.key',
  noDefault: 'missing.key'
};
 
var defaults = {
  defaultNull: null
};
 
remapped(source, mapping, defaults); // { 
                                     //   myId: 0, 
                                     //   myName: 'tyler', 
                                     //   myAge: 30, 
                                     //   dotNotatedKey: 1, 
                                     //   myArray: ['tyler', 30, {objectAge: 30}], 
                                     //   temp: { 
                                     //     myNestedId: 0 
                                     //   }, 
                                     //   defaultNull: null, 
                                     //   noDefault: undefined 
                                     // }; 
  • 2014-02-27 - v0.3.1 - harder check on falsy values
  • 2014-02-27 - v0.3.0 - allow default values
  • 2014-02-26 - v0.2.0 - use js-traverse
  • 2014-02-26 - v0.1.0 - initial release