Tallya (from “tally” meaning to count, plus “-a” for action)
Turn raw counts into concise, UX‑friendly bucketed labels like
300+,7K+or12M+.
npm install tallya
# or
yarn add tallyaimport { 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'| 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'- 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.