UNPKG

r2-utils-js

Version:

Readium 2 'utils' for NodeJS (TypeScript)

52 lines 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isNullOrUndefined = isNullOrUndefined; exports.sortObject = sortObject; exports.traverseJsonObjects = traverseJsonObjects; function isNullOrUndefined(val) { return val === undefined || val === null; } function sortObject(obj) { if (obj === null) { return null; } if (obj instanceof Array) { for (var i = 0; i < obj.length; i++) { obj[i] = sortObject(obj[i]); } return obj; } else if (typeof obj !== "object") { return obj; } var newObj = {}; Object.keys(obj).sort().forEach(function (key) { newObj[key] = sortObject(obj[key]); }); return newObj; } function traverseJsonObjects_(parent, keyInParent, obj, func) { func(obj, parent, keyInParent); if (obj instanceof Array) { for (var index = 0; index < obj.length; index++) { var item = obj[index]; if (!isNullOrUndefined(item)) { traverseJsonObjects_(obj, index, item, func); } } } else if (typeof obj === "object" && obj !== null) { Object.keys(obj).forEach(function (key) { if (obj.hasOwnProperty(key)) { var item = obj[key]; if (!isNullOrUndefined(item)) { traverseJsonObjects_(obj, key, item, func); } } }); } } function traverseJsonObjects(obj, func) { traverseJsonObjects_(undefined, undefined, obj, func); } //# sourceMappingURL=JsonUtils.js.map