Skip to content

Instantly share code, notes, and snippets.

@sente
Forked from varemenos/logger.js
Last active November 23, 2015 05:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save sente/a5e68d48798a0dc67e07 to your computer and use it in GitHub Desktop.
Save sente/a5e68d48798a0dc67e07 to your computer and use it in GitHub Desktop.
logger
var spacing = (function (size) {
var result = '';
for (var i = 0; i < size; i++) {
result += '&nbsp;';
}
return result;
})(4);
var spacing4Depth = function (size) {
var result = '';
for (var i = 0; i < size; i++) {
result += spacing;
}
return result;
};
var parseObj = function (items, depth) {
if (checkDepth()) {
return items;
}
var str;
var count = 0;
str = "{<br>";
for (var item in items) {
if (items.hasOwnProperty(item)) {
count++;
str += spacing4Depth(depth + 1) + "<b>" + item + "</b>: " + parseItem(items[item], depth + 1) + ",<br>";
}
}
if (count > 0) {
str = str.substring(0, str.length - 5) + "<br>" + spacing4Depth(depth) + "}";
} else {
str = "{}";
}
return str;
};
var parseArr = function (items, depth) {
if (checkDepth()) {
return items;
}
var str;
var count = 0;
str = "[<br>";
for (var item in items) {
if (items.hasOwnProperty(item)) {
count++;
str += spacing4Depth(depth + 1) + parseItem(items[item], depth + 1) + ",<br>";
}
}
if (count > 0) {
str = str.substring(0, str.length - 5) + "<br>" + spacing4Depth(depth) + "]";
} else {
str = "[]";
}
return str;
};
var checkDepth = function (depth) {
return depth >= 20;
};
var parseItem = function (items, depth) {
if (typeof items == "object") {
if (items instanceof Array) {
return parseArr(items, depth);
} else {
return parseObj(items, depth);
}
} else {
return items;
}
};
var logger = function (items) {
return parseItem(items, 0);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment