summaryrefslogtreecommitdiff
path: root/deps/npm/lib/utils/deep-sort-object.js
blob: a997150699701378ad79adfbb342c1e37aa5fb01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'use strict'
var sortedObject = require('sorted-object')

module.exports = function deepSortObject (obj, sortBy) {
  if (obj == null || typeof obj !== 'object') return obj
  if (obj instanceof Array) {
    return obj.map(function (x) {
      return deepSortObject(x, sortBy)
    })
  }
  obj = sortedObject(obj)
  Object.keys(obj).forEach(function (key) {
    obj[key] = deepSortObject(obj[key], sortBy)
  })
  return obj
}