grunt-json-replace
Advanced tools
Comparing version
{ | ||
"name": "grunt-json-replace", | ||
"description": "Read, replace and write json files", | ||
"version": "0.1.1", | ||
"version": "0.1.2", | ||
"homepage": "https://github.com/mikaelkaron/grunt-json-replace", | ||
@@ -6,0 +6,0 @@ "author": { |
@@ -0,1 +1,3 @@ | ||
[](https://travis-ci.org/mikaelkaron/grunt-json-replace) | ||
# grunt-json-replace | ||
@@ -66,3 +68,4 @@ | ||
## Release History | ||
0.1.2 - Added support for removing nodes from the result | ||
0.1.1 - Updated version with better documentation | ||
0.1.0 - Initial release | ||
0.1.1 - Updated version with better documentation |
@@ -13,23 +13,19 @@ /* | ||
var UNDEFINED; | ||
var TYPEOF_OBJECT = typeof {}; | ||
var REPLACE = "replace"; | ||
var SPACE = "space"; | ||
var OBJECT = "object"; | ||
function walk(node, replace) { | ||
var result; | ||
switch (typeof node) { | ||
case TYPEOF_OBJECT: | ||
result = {}; | ||
Object.keys(node).forEach(function(key) { | ||
result[key] = walk(node[key], replace && replace[key]); | ||
}); | ||
break; | ||
default: | ||
result = replace instanceof Function ? replace(node) : replace || node; | ||
if (grunt.util.kindOf(replace) === OBJECT && grunt.util.kindOf(node) === OBJECT) { | ||
Object.keys(node).forEach(function(key) { | ||
if (key in replace) { | ||
node[key] = walk(node[key], replace[key]); | ||
} | ||
}); | ||
} | ||
else { | ||
node = replace; | ||
} | ||
return result; | ||
return node; | ||
} | ||
@@ -36,0 +32,0 @@ |
6133
3.58%8
14.29%71
4.41%76
-1.3%