Package Exports
- razorback
 
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (razorback) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Razorback
A js library for normalization/denormalization of objects.
Razorback is designed to allow easier denormalization of objects prior to persisting in flat sql tables, as well as normalizing the objects upon retrieval.
var razorback = new Razorback();
var obj = {
    a: 'first',
    b: {
        c: 'second'
    }
};
razorback.denormalize(obj);
//produces:
//
//{
//	a: 'first',
//	b_c: 'second'
//}Razorback supports fixed index arrays, where numbered indexes store arrays:
var razorback = new Razorback();
var obj = {
    a: 'first',
    b: [
        'second',
        'third'
    ]
};
razorback.denormalize(obj);
//produces:
//
//{
//	a: 'first',
//	b_0: 'second',
//	b_1: 'third'
//}Or dynamic indexes, where arrays are represented by arrays of flat objects:
var actual = new Razorback({useDynamicArrays: true})
    .denormalize({
        a: 'top',
        b: [
            {
                c: 'alpha',
                d: [
                    'first',
                    'second'
                ]
            }, {
                c: 'beta',
                d: [
                    'fourth',
                    'fifth'
                ]
            }
        ]
    });
    
//produces:
//[
//	{
//  	a: 'top',
//      b_c: 'alpha',
//      b_d: 'first'
//   },
//	 {
//   	a: 'top',
//      b_c: 'alpha',
//      b_d: 'second'
//   },
//   {
//      a: 'top',
//      b_c: 'beta',
//      b_d: 'fourth'
//   },
//   {
//      a: 'top',
//      b_c: 'beta',
//      b_d: 'fifth'
//   }
//];Custom seperators can be used instead of the default underscore '_' character if this conflicts with existing field names on objects.
var razorback = new Razorback({
    seperator : '&'
    });
    
razorback.denormalize({
    a: 'first',
    b: {
        c: 'second',
        d: 'third'
    }
});
//produces:
//
//{
//	a: 'first',
//	b&c: 'second',
//	b&d: 'third'
//}Custom mappings between the default (ugly) fields that norm generates can also be provided.
var razorback = new Razorback({
    mappings: [
        {
            from: 'a_b',
            to: 'customField'
        }
    ]
});
razorback.denormalize({
    a: {
        b: 'first'
    }
});
//produces:
//
//{
//	customField: 'first'
//}Razorback also supports excluding certain arrays from being flattened.
var razorback = new Razorback({
        exclusions: [
            'b.c'
        ]
    });
    
    razorback.denormalize({
        a: 'first',
        b: {
            c: [
                'second',
                'third'
            ]
        }
    });
    
    //produces:
    //
    //[
    //	{
    //		a: 'first',
    //		b_c: [
    //			'second',
    //			'third'
    //		]
    //	}
    //]