Skip to content

Commit add1263

Browse files
author
Michael
committed
ensure transform always returns an array
1 parent 1723f8d commit add1263

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ exports.DataTransform = function(data, map){
7676
transform : function(context) {
7777

7878
var value = this.getValue(data, map.list);
79-
var normalized = {};
80-
81-
if(value) {
79+
var normalized = [];
80+
81+
if(!_.isEmpty(value)) {
8282
var list = this.getList();
8383
normalized = map.item ? _.map(list, _.bind(this.iterator, this, map.item)) : list;
8484
normalized = _.bind(this.operate, this, normalized)(context);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "node-json-transform",
3-
"version": "1.0.16",
3+
"version": "1.0.17",
44
"description": "A node module for transforming and performing operations on JSON.",
55
"main": "index.js",
66
"scripts": {

test/nodeDataTransformSpec.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,4 +347,33 @@ describe("node-json-transform", function() {
347347

348348
});
349349

350+
it("should exclude data if not specified", function(){
351+
352+
var data = {
353+
posts: [
354+
{name: "peter", unwanted: true},
355+
{name: "paul", unwanted: true},
356+
{name: "marry", unwanted:true}
357+
]
358+
};
359+
360+
var map = {
361+
list: 'posts',
362+
item: {
363+
name: 'name'
364+
}
365+
};
366+
367+
var dataTransform = DataTransform(data, map);
368+
369+
var result = dataTransform.transform();
370+
371+
expect(result).toEqual([
372+
{name: "peter"},
373+
{name: "paul"},
374+
{name: "marry"}
375+
]);
376+
377+
});
378+
350379
});

test/transformContextSpec.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,11 @@ describe("node-json-transform", function() {
6161

6262
});
6363

64+
it("should always return an array", function() {
65+
66+
var dataTransform = DataTransform({}, {});
67+
expect(_.isArray(dataTransform.transform())).toEqual(true);
68+
69+
});
70+
6471
});

0 commit comments

Comments
 (0)