Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

aveta

tal7aouy4.1kMIT1.5.2TypeScript support: included

Convert long numbers into abbreviated and human-readable strings.

human, readable, easy, short numbers, big, large, numbers, beauty, human, format, thousand, million, billion, trillion, aveta

readme

Aveta


logo

Convert large numbers into concise, human-readable formats easily.

Input :disappointed: Output :joy:
6000 '6K'
10000 '10K'
42500 '42.5K'
1250000 '1.25M'

Installation

With npm:

npm install aveta

With Yarn:

yarn add aveta

Usage

aveta(value: number, options?: Partial<IOptions>): string;
import aveta from 'aveta';

// For CommonJS: `const { aveta } = require('aveta');`

aveta(8700); // '8.7K'

aveta(123456, {
  digits: 3,
  lowercase: true,
});
// '123k'

aveta(4567, {
  digits: 3,
  lowercase: true,
});
// '4.57k'

aveta(2048000, {
  precision: 2,
  lowercase: true,
});
// '2.48m'

aveta(45500, {
  precision: 3,
  separator: ',',
});
// '45,500K'

aveta(1440000, {
  units: ['B', 'KB', 'MB', 'GB', 'TB'],
  space: true,
});
// '1.44 MB'

AvetaReverse

Aveta also supports reversing the human-readable format back to a numeric value using the avetaReverse function.

avetaReverse(value: string): number;
import { avetaReverse } from 'aveta';

// For CommonJS: `const { avetaReverse } = require('aveta');`

avetaReverse('8.7K'); // 8700

avetaReverse('123k'); // 123000

avetaReverse('4.57k'); // 4570

avetaReverse('2.48m'); // 2480000

Command Line Usage

You can also use aveta directly in the terminal.

$ aveta 234000
# or
$ npx aveta 234000
234K

For more options, run:

aveta --help

Default Options

Default Options

Name Type Default Description
precision number 1 Number of decimal places to round to
digits number 0 Number of significant digits to display
separator string '.' Decimal separator (e.g. . or ,)
lowercase boolean false Output unit abbreviations in lowercase
space boolean false Insert a space between the number and unit abbreviation
units Array<string> ['', 'K', 'M', 'B', 'T', 'P', 'E'] Units to use for thousand, million, billion, etc.
base number 1000 Base to scale numbers (default is 1000 for K, M, etc.)
roundingMode 'up' | 'down' | 'nearest' 'nearest' How numbers are rounded: nearest, always up, or always down
threshold number 0 Minimum value before unit conversion is applied (coming)

License

Aveta is available under the MIT License.

Authors

Created by Mhammed Talhaouy.

changelog

Changelog

All notable changes to this project will be documented in this file.

[1.0.0]

  • initial release

[1.1.0] (Feb-9-2022)

  • use aveta in command line
  • update Readme

[1.1.1] (Feb-17-2022)

  • update readme
  • use aveta with npx

[1.2.0] (Mar-06-2022)

  • update readme
  • specify a maximum number of significant digits for a number

[1.3.0] (Mar-24-2023)

  • update readme
  • specify a maximum number of significant digits for a number

[1.4.0] (Upcoming)

Added

  • Custom base scaling: Introduced the base option, allowing users to specify a custom base for scaling numbers (e.g., 1000 or 1024 for file sizes).
  • Rounding mode: Added roundingMode option with values 'up', 'down', or 'nearest' to control how numbers are rounded.
  • Threshold for formatting: Added threshold option to set a minimum value for applying unit conversion (below the threshold, the number will be returned as-is).
  • Negative number formatting: Introduced the negativeFormat option to control how negative numbers are displayed ('prefix' for minus sign or 'parentheses' for enclosing in parentheses).
  • Scientific notation: Added the scientificNotation option to toggle the display of large numbers in scientific notation.
  • Localized units: Introduced the localizedUnits option to support locale-specific unit abbreviations (e.g., different units for English and French).
  • Custom number format: Added the numberFormat option, which allows the use of a custom function to format numbers before unit conversion.

Updated

  • Documentation: Updated the README to reflect the new options added in this release.

[1.5.0] (Jan-04-2025)

  • Add rounding mode