0.2.0 • Published 8 years ago

normalize-obj v0.2.0

Weekly downloads
6
License
MIT
Repository
github
Last release
8 years ago

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
0.2.0

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago