node-json-transform
Version:
A node module for transforming and performing operations on JSON.
96 lines (87 loc) • 1.91 kB
JavaScript
var transform = require('../index.js').transform,
_ = require("lodash");
var map = {
item: {
id: 'id',
sku: 'sku',
zero: 'zero',
toReplace: 'sku',
errorReplace: 'notFound',
simpleArray: ['id', 'sku','sku'],
complexArray: [ {node: 'id'} , { otherNode:'sku' } , {toReplace:'sku'} ],
subObject: {
node1: 'id',
node2: 'sku',
subSubObject: {
node1: 'id',
node2: 'sku',
}
}
},
operate: [{
run: (val) => 'replacement',
on: 'subObject.subSubObject.node1'
},
{
run: (val) => 'replacement',
on: 'errorReplace'
},
{
run: (val) => 'replacement',
on: 'toReplace'
},
{
run: (val) => 'replacement',
on: 'simpleArray.2'
},
{
run: (val) => 'replacement',
on: 'complexArray.2.toReplace'
},]
};
var object = [
{
id: 'books',
zero: 0,
sku:'10234-12312'
}
];
describe("node-json-transform", function() {
it("should extract values", function() {
var expected = [
{
"id": "books",
"sku": "10234-12312",
"zero": 0,
"toReplace": "replacement",
"errorReplace": "replacement",
"simpleArray": [
"books",
"10234-12312",
"replacement"
],
"complexArray": [
{
"node": "books"
},
{
"otherNode": "10234-12312"
},
{
"toReplace": "replacement"
}
],
"subObject": {
"node1": "books",
"node2": "10234-12312",
"subSubObject": {
"node1": "replacement",
"node2": "10234-12312"
}
}
}
];
var result = transform(object, map);
expect(result).toEqual(expected);
});
});