Comparing version
34
index.js
@@ -8,4 +8,4 @@ module.exports = function(obj) { | ||
if (!obj || typeof obj !== 'object') return obj; | ||
if (Array.isArray(obj)) return obj.map(walk); | ||
return Object.keys(obj).reduce(function (acc, key) { | ||
if (isArray(obj)) return map(obj, walk); | ||
return reduce(objectKeys(obj), function (acc, key) { | ||
var camel = camelCase(key); | ||
@@ -22,1 +22,31 @@ acc[camel] = walk(obj[key]); | ||
} | ||
var isArray = Array.isArray || function (obj) { | ||
return Object.prototype.toString.call(obj) === '[object Array]'; | ||
}; | ||
var has = Object.prototype.hasOwnProperty; | ||
var objectKeys = Object.keys || function (obj) { | ||
var keys = []; | ||
for (var key in obj) { | ||
if (has.call(obj, key)) keys.push(key); | ||
} | ||
return keys; | ||
}; | ||
function map (xs, f) { | ||
if (xs.map) return xs.map(f); | ||
var res = []; | ||
for (var i = 0; i < xs.length; i++) { | ||
res.push(f(xs[i], i)); | ||
} | ||
return res; | ||
} | ||
function reduce (xs, f, acc) { | ||
if (xs.reduce) return xs.reduce(f, acc); | ||
for (var i = 0; i < xs.length; i++) { | ||
acc = f(acc, xs[i], i); | ||
} | ||
return acc; | ||
} |
{ | ||
"name": "camelize", | ||
"version": "0.1.1", | ||
"version": "0.1.2", | ||
"description": "recursively transform key strings to camel-case", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
5210
14.93%84
44.83%