comparator.ts
v1.0.4
Published
A TypeScript library for comparing values
Readme
Installation
pnpm add comparator.ts
# or
# yarn add comparator.ts
# or
# npm install comparator.tsUsage
import {
type Comparator,
booleanComparator,
comparing,
nullsLast,
stringComparator,
} from "comparator.ts";
type FeatureConfig = {
enabled?: boolean;
name: string;
};
const data: FeatureConfig[] = [
{ enabled: false, name: "Feature A" },
{ name: "Feature B" },
{ enabled: true, name: "Feature C" },
];
const compareByEnabled: Comparator<FeatureConfig> = comparing(
(feature) => feature.enabled,
nullsLast(booleanComparator.reversed()),
);
const compareByName: Comparator<FeatureConfig> = comparing(
(feature) => feature.name,
stringComparator,
);
const sortedData = data.toSorted(compareByEnabled.thenComparing(compareByName));
// sortedData = [
// { enabled: true, name: "Feature C" },
// { enabled: false, name: "Feature A" },
// { name: "Feature B" },
// ]API
Full API documentation can be found here.
Contributing
See CONTRIBUTING.md for more information.
