array-sorter
Advanced tools
Comparing version 1.0.0 to 1.0.1
@@ -11,11 +11,9 @@ module.exports = (array, locales, localeOptions) => { | ||
const getValue = (item, valueRetriever) => { | ||
const getValue = (item, retriever) => { | ||
const { valueRetriever, parts } = retriever | ||
if (isNotDefined(valueRetriever)) return undefined; | ||
if (typeof valueRetriever === 'function') | ||
return valueRetriever(item); | ||
if (isNotDefined(valueRetriever)) return undefined; | ||
valueRetriever = valueRetriever.replace(/\?/g, '') | ||
const parts = valueRetriever.split(/[\.\[]/g); | ||
let value = item; | ||
@@ -46,5 +44,5 @@ | ||
for (let i = 0; i < numberOfOperations; i++) { | ||
let { valueRetriever, valueComparer, sortAscending } = sortOperations[i]; | ||
let valA = sortAscending ? getValue(itemA, valueRetriever) : getValue(itemB, valueRetriever); | ||
let valB = sortAscending ? getValue(itemB, valueRetriever) : getValue(itemA, valueRetriever); | ||
let { retriever, valueComparer, sortAscending } = sortOperations[i]; | ||
let valA = sortAscending ? getValue(itemA, retriever) : getValue(itemB, retriever); | ||
let valB = sortAscending ? getValue(itemB, retriever) : getValue(itemA, retriever); | ||
@@ -85,3 +83,12 @@ if (isNotDefined(valA)) valA = ''; | ||
valueComparer = comparer; | ||
sortOperations.push({ valueRetriever, valueComparer, sortAscending }) | ||
const retriever = { | ||
valueRetriever | ||
} | ||
if (typeof valueRetriever === 'string') { | ||
retriever.parts = valueRetriever.replace(/\?/g, '').split(/[\.\[]/g) | ||
} | ||
sortOperations.push({ retriever, valueComparer, sortAscending }) | ||
} | ||
@@ -88,0 +95,0 @@ |
{ | ||
"name": "array-sorter", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "Sort an array of objects by one or more properties in any order. Multiple properties and custom comparison functions can be used.", | ||
@@ -5,0 +5,0 @@ "main": "./lib/index.js", |
19646
487