lib/utils/utils.js
function _sortObj(obj) {
        if (!_.isObject(obj)) {
            return JSON.stringify(obj);
        }

        if (_.isArray(obj)) {
            return '[' + _(obj).map(_sortObj).join(',') + ']';
        }

        return '{' +
            _(obj)
                .keys()
                .sort()
                .map(function (key) {
                    return JSON.stringify(key) + ':' + _sortObj(obj[key]);
                })
                .join(',') +
            '}';
    }
function _sortObj(obj) {
        if (!_.isObject(obj)) {
            return JSON.stringify(obj);
        }

        if (_.isArray(obj)) {
            return '[' + _(obj).map(_sortObj).join(',') + ']';
        }

        return '{' +
            _(obj)
                .keys()
                .sort()
                .map(function (key) {
                    return JSON.stringify(key) + ':' + _sortObj(obj[key]);
                })
                .join(',') +
            '}';
    }
function _sortObj ( obj ) { if ( ! _ . isObject ( obj ) ) { return JSON . stringify ( obj ) ; } if ( _ . isArray ( obj ) ) { return '[' + _ ( obj ) . map ( _sortObj ) . join ( ',' ) + ']' ; } return '{' + _ ( obj ) . keys ( ) . sort ( ) . map ( function ( key ) { return JSON . stringify ( key ) + ':' + _sortObj ( obj [ key ] ) ; } ) . join ( ',' ) + '}' ; }
Recursively sorts the given object by key
@param {Object} obj
@returns {Object}
Recursively sorts the given object by key