UNPKG

ajsfw

Version:
62 lines (61 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function sizeOf(object, levels, level) { "use strict"; var size = 0; levels = levels || -1; level = level || 0; if (levels !== -1 && level > levels) { return 0; } switch (typeof (object)) { case "boolean": size += 4; break; case "number": size += 8; break; case "string": size += 2 * object.length; break; case "object": if (object instanceof Int8Array) { size += object.byteLength; } else { if (object instanceof Int16Array) { size += object.byteLength; } else { if (object instanceof Int32Array) { size += object.byteLength; } else { if (object instanceof Array) { for (var i = 0; i < object.length; i++) { size += sizeOf(object[i], levels, level + 1); } } else { if (object instanceof Array) { size += 8; } else { if (!(object instanceof Function)) { for (var key in object) { if (object.hasOwnProperty(key)) { size += sizeOf(object[key], levels, level); } } } } } } } } break; default: } return size; } exports.sizeOf = sizeOf;