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:
sortAuto
automatically determines how to sort based on the type. - Custom Sorters: Create and use custom sorting functions easily.
- Nullish Handling: Handles
null
andundefined
values gracefully. - High Modularity: Import only what you need.
Installation
Install the library via npm:
npm install sortit
Or via Yarn:
yarn add sortit
Or via pnpm:
pnpm add sortit
Or via Bun:
bun add sortit
Usage
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 build
Running Tests
Add test cases and run them using:
npm test
Contributing
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.