Skip to content
Reshape JavaScript objects to match a schema
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
test Tweak data stack pushing Jun 2, 2016
.gitignore
.travis.yml
LICENSE
README.md Refactor (#2) May 30, 2016
package.json

README.md

Reshaper

Build Status Coverage Status

Reshaper is a JavaScript library which can automatically restructure JavaScript objects to match a provided schema. It also provides users with some manual control, by way of a 'hint' system.

To see some interactive examples, check out this Kajero notebook.

Installation

npm install reshaper

Usage

reshaper(data, schema, [hint])

  • data: The JavaScript data structure to be reshaped.
  • schema: The structure we want our reshaped data to match.
  • hint: (Optional) The name of an object key, given as a 'hint'. Keys matching this hint will be preferred. An array of keys can also be provided if desired.

Examples

var reshaper = require('reshaper');

var peopleData = [
    {
        name: 'Joel',
        info: {
            age: 22,
            height: 1.9,
            middleName: 'Robert',
            lastName: 'Auterson'
        }
    },
    {
        name: 'Jake',
        info: {
            age: 24,
            height: 1.85,
            middleName: 'Wild',
            lastName: 'Hall'
        }
    }
];

var schema = ['String'];

reshaper(peopleData, schema);
// => ['Joel', 'Jake']

// We can give a 'hint', to say lastName is what we want.
reshaper(peopleData, schema, 'lastName');
// => ['Auterson', 'Hall']

// Object keys get used as hints
var schema = {
    age: ['Number'],
    height: ['Number']
};

reshaper(peopleData, schema);
/* =>
{
    age: [22, 24],
    height: [1.9, 1.85]
}
*/
You can’t perform that action at this time.