src/index.js
function treeSorter(node) {
    if(node[options.childsProp]) {
      node[options.childsProp].forEach(function(node) {
        treeSorter(node);
      });
      node[options.childsProp].sort(function childSorter(a, b) {
        var result;
        if('undefined' === typeof a[options.sortProp]) {
          result = (options.sortDesc ? 1 : -1);
        } else if('undefined' === typeof b[options.sortProp]) {
          result = (options.sortDesc ? -1 : 1);
        } else {
          result = a[options.sortProp] > b[options.sortProp] ?
            (options.sortDesc ? -1 : 1) : (options.sortDesc ? 1 : -1);
        }
        return result;
      });
    }
  }
function treeSorter(node) {
    if(node[options.childsProp]) {
      node[options.childsProp].forEach(function(node) {
        treeSorter(node);
      });
      node[options.childsProp].sort(function childSorter(a, b) {
        var result;
        if('undefined' === typeof a[options.sortProp]) {
          result = (options.sortDesc ? 1 : -1);
        } else if('undefined' === typeof b[options.sortProp]) {
          result = (options.sortDesc ? -1 : 1);
        } else {
          result = a[options.sortProp] > b[options.sortProp] ?
            (options.sortDesc ? -1 : 1) : (options.sortDesc ? 1 : -1);
        }
        return result;
      });
    }
  }
function treeSorter ( node ) { if ( node [ options . childsProp ] ) { node [ options . childsProp ] . forEach ( function ( node ) { treeSorter ( node ) ; } ) ; node [ options . childsProp ] . sort ( function childSorter ( a , b ) { var result ; if ( 'undefined' === typeof a [ options . sortProp ] ) { result = ( options . sortDesc ? 1 : - 1 ) ; } else if ( 'undefined' === typeof b [ options . sortProp ] ) { result = ( options . sortDesc ? - 1 : 1 ) ; } else { result = a [ options . sortProp ] > b [ options . sortProp ] ? ( options . sortDesc ? - 1 : 1 ) : ( options . sortDesc ? 1 : - 1 ) ; } return result ; } ) ; } }
Tree sorting function
Tree sorting function