Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / lodash / _baseOrderBy.js
index d8a46ab20a2c5d1ef9a0a755539241c0b8446798..775a01741ede2047912ffd92c93eeff0c56e4dff 100644 (file)
@@ -1,10 +1,12 @@
 var arrayMap = require('./_arrayMap'),
+    baseGet = require('./_baseGet'),
     baseIteratee = require('./_baseIteratee'),
     baseMap = require('./_baseMap'),
     baseSortBy = require('./_baseSortBy'),
     baseUnary = require('./_baseUnary'),
     compareMultiple = require('./_compareMultiple'),
-    identity = require('./identity');
+    identity = require('./identity'),
+    isArray = require('./isArray');
 
 /**
  * The base implementation of `_.orderBy` without param guards.
@@ -16,8 +18,21 @@ var arrayMap = require('./_arrayMap'),
  * @returns {Array} Returns the new sorted array.
  */
 function baseOrderBy(collection, iteratees, orders) {
+  if (iteratees.length) {
+    iteratees = arrayMap(iteratees, function(iteratee) {
+      if (isArray(iteratee)) {
+        return function(value) {
+          return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
+        }
+      }
+      return iteratee;
+    });
+  } else {
+    iteratees = [identity];
+  }
+
   var index = -1;
-  iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));
+  iteratees = arrayMap(iteratees, baseUnary(baseIteratee));
 
   var result = baseMap(collection, function(value, key, collection) {
     var criteria = arrayMap(iteratees, function(iteratee) {