only-sort v1.0.0
Only Sort
A powerful and flexible TypeScript library for sorting arrays and collections. The library supports sorting of various data types, including strings, numbers, booleans, dates, objects, and arrays.
Features
- Typed Sorting: TypeScript-powered type safety for all sorting functions.
- Automatic Sorting:
sortAutoautomatically determines how to sort based on the type. - Custom Sorters: Create and use custom sorting functions easily.
- Nullish Handling: Handles
nullandundefinedvalues gracefully. - High Modularity: Import only what you need.
Installation
Install the library via npm:
npm install sortitOr via Yarn:
yarn add sortitOr via pnpm:
pnpm add sortitOr via Bun:
bun add sortitUsage
Importing the Library
import { sortAuto, sortNumbers, sortStrings } from "sortit";Sorting Examples
Sort Numbers
const numbers = [5, 2, 9, 1];
const sortedNumbers = sortNumbers(numbers);
console.log(sortedNumbers); // [1, 2, 5, 9]Sort Strings
const strings = ["apple", "orange", "banana"];
const sortedStrings = sortStrings(strings);
console.log(sortedStrings); // ["apple", "banana", "orange"];Sort Dates
const dates = [new Date(2022, 5, 1), new Date(2021, 1, 1)];
const sortedDates = sortAuto(dates);
console.log(sortedDates); // [2021-01-01T00:00:00.000Z, 2022-06-01T00:00:00.000Z]Custom Sorter
import { sorter } from "sortit";
const customSorter = sorter((item) => item.length);
const words = ["short", "very long", "medium"];
const sortedWords = words.sort(customSorter);
console.log(sortedWords); // ["short", "medium", "very long"];API
sortAuto
Automatically sorts an array based on the type of elements.
Parameters:
values: Array<unknown>- Array to be sorted.
Returns: Array<unknown> - Sorted array.
sortNumbers
Sorts an array of numbers.
Parameters:
numbers: Array<number>- Array of numbers to be sorted.
Returns: Array<number> - Sorted array.
sortStrings
Sorts an array of strings alphabetically.
Parameters:
strings: Array<string>- Array of strings to be sorted.
Returns: Array<string> - Sorted array.
sorter
Creates a custom sorter based on an accessor function.
Parameters:
accessor: (value: T) => R- Accessor function for the sort key.
Returns: (a: T, b: T) => number - A comparator function.
Development
Building the Library
Use the following command to build the library:
npm run buildRunning Tests
Add test cases and run them using:
npm testContributing
Contributions are welcome! Please submit a pull request or open an issue on GitHub.
License
This project is licensed under the MIT License. See the LICENSE file for details.