all files / scour/utilities/ sort_by.js

100% Statements 13/13
83.33% Branches 5/6
100% Functions 1/1
100% Lines 10/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18       12×          
const map = require('./map')
const forEach = require('./each')
const toFunction = require('to-function')
const sortValues = require('../lib/sort_values')
 
module.exports = function sortBy (each, condition, isArray) {
  if (typeof isArray === 'undefined' && !Array.isArray(each)) isArray = false
  Eif (typeof each !== 'function') each = forEach.bind(this, each)
 
  condition = toFunction(condition)
 
  var values = map(each, (value, key, index) => ({
    key, value, criteria: condition(value, key), index
  }))
 
  return sortValues(values, isArray)
}