tallya
v1.0.0
Published
Turn raw counts into UX-friendly bucketed labels like '100+', '1K+', or '10K+'.
Maintainers
Readme
tallya
Turn raw counts into concise, UX‑friendly bucketed labels like
300+,7K+or12M+.
Install
npm install tallya
# or
yarn add tallyaQuick Start
import { getLabel } from "tallya";
// default suffix '+'
getLabel(317); // → '300+'
getLabel(7321); // → '7K+'
getLabel(12_345_678); // → '12M+'
getLabel(0); // → '0+'
// custom suffix
getLabel(317, { suffix: " sold" }); // → '300 sold'
getLabel(0, { suffix: "" }); // → '0'API
getLabel(count, options?) → string
| Argument | Type | Default | Description |
| --------- | --------------------- | ------- | ------------------------------------------------------------- |
| count | number | — | Any finite number you want to label (throws on NaN or ∞). |
| options | { suffix?: string } | {} | Configuration object (only suffix is supported in v1.0). |
- Suffix: Text appended to every label. Defaults to
+.
getLabel(100); // '100+'
getLabel(100, { suffix: "" }); // '100'How It Works
- Zero check: Throws if
countis not finite. - Zero bucket:
0 → '0+'(or'0'with empty suffix). - Magnitude buckets: Groups by thousands:
K,M,B,T. - Floor and suffix: Floors count to bucket value, then appends suffix.
Under the hood it uses Math.log10 and a tiny lookup array (['', 'K', 'M', 'B', 'T']) for an O(1) label computation.
