json-deep-compare
Version:
A powerful library for comparing JSON objects with support for deep comparison, regex validation, and customizable options
1 lines • 939 B
JavaScript
class PathUtils{static getAllPaths(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(null===t||"object"!=typeof t)return e.push(a),e;if(Array.isArray(t))if(0===t.length)e.push(a);else for(var r=0;r<t.length;r++){var l=a?"".concat(a,"[").concat(r,"]"):"[".concat(r,"]");PathUtils.getAllPaths(t[r],l,e)}else{var c=Object.keys(t);if(0===c.length)e.push(a);else for(var o of c){var s=a?"".concat(a,".").concat(o):o;PathUtils.getAllPaths(t[o],s,e)}}return e}static getValueAtPath(t,a){var e=a.replace(/\[(\d+)\]/g,".$1").split("."),r=t;for(var l of e){if(null===r||"object"!=typeof r)return;r=r[l]}return r}static getKeyNameFromPath(t){var a;return null===(a=t.split(".").pop())||void 0===a?void 0:a.split("[")[0]}static buildPath(t,a){return t?"".concat(t,".").concat(a):a}static buildArrayPath(t,a){return"".concat(t,"[").concat(a,"]")}}module.exports=PathUtils;