export function cmpE()

in packages/sqrl-common/src/compare.ts [8:32]


export function cmpE(left, right) {
  let rv;
  if (Array.isArray(left) && Array.isArray(right)) {
    rv =
      left.length === right.length &&
      left.every((el, idx) => cmpE(el, right[idx]));
  } else if (
    left &&
    right &&
    typeof left === "object" &&
    typeof right === "object"
  ) {
    // Make sure the keys match, and the value at every key matches (deep equal)
    const keys = Object.keys(left).sort();
    rv =
      cmpE(keys, Object.keys(right).sort()) &&
      keys.every((key) => {
        return cmpE(left[key], right[key]);
      });
  } else {
    rv = left === right;
  }

  return rv;
}