The properties are parameters
parent
04892f1fc5
commit
1022837ec9
2
index.js
2
index.js
|
@ -1,4 +1,4 @@
|
||||||
const sortby = (properties) => (a, b) => {
|
const sortby = (...properties) => (a, b) => {
|
||||||
// 'base' treat accent as there base character
|
// 'base' treat accent as there base character
|
||||||
const collator = new Intl.Collator('en', { numeric: true, sensitivity: 'base' })
|
const collator = new Intl.Collator('en', { numeric: true, sensitivity: 'base' })
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ const data = [
|
||||||
]
|
]
|
||||||
|
|
||||||
test('sort by name ascending', () => {
|
test('sort by name ascending', () => {
|
||||||
const result = data.sort(sortby(['name']))
|
const result = data.sort(sortby('name'))
|
||||||
|
|
||||||
equal(result, [
|
equal(result, [
|
||||||
{ age: 40, name: "Persone 1", new: true },
|
{ age: 40, name: "Persone 1", new: true },
|
||||||
|
@ -20,7 +20,7 @@ test('sort by name ascending', () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
test('sort by age ascending', () => {
|
test('sort by age ascending', () => {
|
||||||
const result = data.sort(sortby(['age']))
|
const result = data.sort(sortby('age'))
|
||||||
|
|
||||||
equal(result, [
|
equal(result, [
|
||||||
{ age: 17, name: "Persone 2", new: false },
|
{ age: 17, name: "Persone 2", new: false },
|
||||||
|
@ -29,7 +29,7 @@ test('sort by age ascending', () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
test('sort by age descending', () => {
|
test('sort by age descending', () => {
|
||||||
const result = data.sort(sortby(['age', 'desc']))
|
const result = data.sort(sortby('age', 'desc'))
|
||||||
|
|
||||||
equal(result, [
|
equal(result, [
|
||||||
{ age: 40, name: "Persone 1", new: true },
|
{ age: 40, name: "Persone 1", new: true },
|
||||||
|
@ -38,7 +38,7 @@ test('sort by age descending', () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
test('sort by new descending', () => {
|
test('sort by new descending', () => {
|
||||||
const result = data.sort(sortby(['new', 'desc']))
|
const result = data.sort(sortby('new', 'desc'))
|
||||||
|
|
||||||
equal(result, [
|
equal(result, [
|
||||||
{ age: 40, name: "Persone 1", new: true },
|
{ age: 40, name: "Persone 1", new: true },
|
||||||
|
@ -49,7 +49,7 @@ test('sort by new descending', () => {
|
||||||
test('sort with accent, should not change order', () => {
|
test('sort with accent, should not change order', () => {
|
||||||
const data = [{ name: 'è' }, { name: 'é' }, { name: 'e' }]
|
const data = [{ name: 'è' }, { name: 'é' }, { name: 'e' }]
|
||||||
|
|
||||||
const result = data.sort(sortby(['name']))
|
const result = data.sort(sortby('name'))
|
||||||
|
|
||||||
equal(result, [{ name: 'è' }, { name: 'é' }, { name: 'e' }])
|
equal(result, [{ name: 'è' }, { name: 'é' }, { name: 'e' }])
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "sortby",
|
"name": "sortby",
|
||||||
"version": "1.0.0",
|
"version": "2.0.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "sortby",
|
"name": "sortby",
|
||||||
"version": "1.0.0",
|
"version": "2.0.0",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"metaltest": "git+https://git.tranche.ca/fmatte/metaltest"
|
"metaltest": "git+https://git.tranche.ca/fmatte/metaltest"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "sortby",
|
"name": "sortby",
|
||||||
"description": "Sort object by property name",
|
"description": "Sort object by property name",
|
||||||
"version": "1.0.0",
|
"version": "2.0.0",
|
||||||
"author": "Frédéric Matte <fmatte@gmail.com>",
|
"author": "Frédéric Matte <fmatte@gmail.com>",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
|
|
Loading…
Reference in New Issue