Neighbourhood Party Manager

    normalize-obj

    0.2.0 • Public • Published

    Build Status Coverage Status npm version

    normalize-obj

    Rename keys, and/or change structure of an object.

    Install

    npm install normalize-obj --save

    How to use

    var normalize = require('normalize-obj');
     
    var object = {name: 'Darlan', age: 25, address: {num: '117'}};
     
    var normalized = normalize(object).change('name', 'fullname');
    // => {fullname: 'Darlan', age: 25, address: {num: '117'}};

    Methods can be chained, example:

    normalize(object)
        .change('name', 'fullname')
        .change('age', 'old');
    // => {fullname: 'Darlan', old: 25, address: {num:  '117'}};

    Accept nesting keys, with dot syntax, to change key name

    normalize(object).change('address.num', 'address.number');
    // => {name: 'Darlan', age: 25, address: {number: '117'}};

    or change structure too

    normalize(object).change('address.num', 'number');
     
    // => {name: 'Darlan', age: 25, number: '117'};

    Important

    On change structure, like below, if old structure don't have others properties, there are deleted. I.e:

    var object = {
        address: {
            street: 'Paulista',
            country: 'br',
            num: '1107'
        },
        phone: {
            mobile: '0000-0000'
        }
    };
     
    normalize(object).change('address.num', 'number');
    /* => 
        {
            number: 1107,
            // keep address, because have others properties
            address: {
                street: 'Paulista',
                country: 'br'
            },
            phone: {
                mobile: '0000-0000'
            }
        };
     
    */
     
    // now, if dont have properties
    normalize(object).change('phone.mobile', 'mobile');
     
    /* => 
        {
            number: 1107,
            address: {
                street: 'Paulista',
                country: 'br'
            },
            mobile: '0000-0000'
            // delete phone, because don't have others properties
        };
     
    */
     

    And offer method to copy field

    normalize(object).copy('address.num', 'number');
    // => {name: 'Darlan', age: 25, address: {num: '117'}, number: '117'};

    Tests

    npm test

    Install

    npm i normalize-obj

    DownloadsWeekly Downloads

    3

    Version

    0.2.0

    License

    MIT

    Last publish

    Collaborators

    • darlanmendonca
    • marcosbergamo