Skip to content

simonkberg/comparator.ts

Repository files navigation

comparator.ts

A TypeScript library for comparing values.


Installation

pnpm add comparator.ts
# or
# yarn add comparator.ts
# or
# npm install comparator.ts

Usage

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.

About

A TypeScript library for comparing values.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •