JSPM

  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q58267F
  • License ISC

Sort an array by its property

Package Exports

  • property-sort
  • property-sort/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (property-sort) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Property Sort

npm

property-sort provides a method that lets you setup sorting in alphabetical, numerical ordering and more. No more hassle sorting your arrays.

Example

let collection = [
  {
    user: { name: "Denzil Norris", age: 22 }
  },
  {
    user: { name: "Clarissa London", age: 20 }
  }
];

let options = {
  direction: SortDirections.Ascending,
  sortKey: ['user', 'name'],
  locale: LanguageCode.en
};

sortByProperty(collection, options);
/*[
  {
    user: { name: "Clarissa London", age: 20 }
  },
  {
    user: { name: "Denzil Norris", age: 22 }
  }
]*/

options = {
  direction: SortDirections.Descending,
  sortKey: ['user', 'age'],
  locale: LanguageCode.en
};

sortByProperty(collection, options);
/*[
  {
    user: { name: "Denzil Norris", age: 22 }
  },
  {
    user: { name: "Clarissa London", age: 20 }
  }
]*/

Getting started

Install the package...

npm install property-sort

Usage

Plain TypeScript:

import sortByProperty, { SortDirections, SortOptions, SortObject } from 'property-sort';
import LanguageCode from 'language-code';

...
let collection: SortObject<YourItem[]> = ...;
let options: SortOptions = {
  direction: SortDirections.Ascending,
  sortKey: ['adress', 'suite'],
  locale: LanguageCode.en,
  numeric: true
};

collection = sortByProperty(collection, options);

Properties

sortByProperty (method):

sortByProperty(collection: T[], options: SortOptions): T[]
Property Type Description
collection SortObject<T> array to sort
options SortOptions options on sorting

SortOptions (interface):

Property Type Description
sortKey SortType Key to sort the array by
direction SortDirection Sets sort to ascending/descending order
locale? LocaleType Used to compare in chosen locale
numeric? boolean Used when comparing strings using numeric values

SortDirection (interface)

Key Value Description
None 0 Used to reset sorting
Ascending 1 Used to sort in ascending order
Descending 2 Used to sort in descending order

SortObject<T> (type)

SortObject is a generic type, which takes in an array of unknown objects. This will allow you to to work with your own interfaces while benefitting from writing typed.

LocaleType (type)

A standardized nomenclature used to classify languages. The LocaleType accepts a wildcard string or an ENUM using LanguageCode. As a fallback LocaleType will be set to "en" (English), this will be done when leaving it as undefined or an invalid LocaleType.

SortType (type)

SortType is a type which accepts a string or array of strings, which represents the key you would like to sort the array by. Example: 'key' or following, if the key is in an a nested object: ['nested','key'].