What is pretty-bytes?
The pretty-bytes npm package is a utility that converts bytes to a human-readable string. It takes a numeric value representing the number of bytes and returns a string with a more readable format, including the appropriate unit such as bytes, kilobytes, megabytes, etc.
What are pretty-bytes's main functionalities?
Convert bytes to a human-readable string
This feature allows you to convert a numeric value of bytes into a string that represents the size in a more understandable format, automatically choosing the right unit.
const prettyBytes = require('pretty-bytes');
console.log(prettyBytes(1024)); // '1 kB'
Convert bytes to a human-readable string with options
This feature allows you to specify options such as using binary (IEC) units instead of metric (SI) units, which changes the way the units are calculated and displayed.
const prettyBytes = require('pretty-bytes');
console.log(prettyBytes(1000, {binary: true})); // '1000 B'
console.log(prettyBytes(1024, {binary: true})); // '1 KiB'
Locale support
This feature allows you to format the number using a locale string, which affects the output by using the appropriate decimal separator and grouping for the specified locale.
const prettyBytes = require('pretty-bytes');
console.log(prettyBytes(123456789, {locale: 'de'})); // '123,5 MB'
Other packages similar to pretty-bytes
filesize
The filesize package provides similar functionality to pretty-bytes, allowing for human-readable file size strings from byte amounts. It offers additional options for customization, such as setting the number of decimal places, and has methods for partial application.
bytes
The bytes package is another alternative that formats byte sizes into human-readable strings. It supports conversion from a string with a unit back to bytes, which pretty-bytes does not do.
pretty-bytes
Convert bytes to a human readable string: 1337
→ 1.34 kB
Useful for displaying file sizes for humans.
Note that it uses base-10 (e.g. kilobyte).
Read about the difference between kilobyte and kibibyte.
Install
npm install pretty-bytes
Usage
import prettyBytes from 'pretty-bytes';
prettyBytes(1337);
prettyBytes(100);
prettyBytes(1337, {bits: true});
prettyBytes(42, {signed: true});
prettyBytes(1337, {locale: 'de'});
API
prettyBytes(number, options?)
number
Type: number
The number to format.
options
Type: object
signed
Type: boolean
Default: false
Include plus sign for positive numbers. If the difference is exactly zero a space character will be prepended instead for better alignment.
bits
Type: boolean
Default: false
Format the number as bits instead of bytes. This can be useful when, for example, referring to bit rate.
binary
Type: boolean
Default: false
Format the number using the Binary Prefix instead of the SI Prefix. This can be useful for presenting memory amounts. However, this should not be used for presenting file sizes.
locale
Type: boolean | string
Default: false
(No localization)
Important: Only the number and decimal separator are localized. The unit title is not and will not be localized.
- If
true
: Localize the output using the system/browser locale. - If
string
: Expects a BCP 47 language tag (For example: en
, de
, …) - If
string[]
: Expects a list of BCP 47 language tags (For example: en
, de
, …)
minimumFractionDigits
Type: number
Default: undefined
The minimum number of fraction digits to display.
If neither minimumFractionDigits
or maximumFractionDigits
are set, the default behavior is to round to 3 significant digits.
import prettyBytes from 'pretty-bytes';
prettyBytes(1900, {minimumFractionDigits: 3});
prettyBytes(1900);
maximumFractionDigits
Type: number
Default: undefined
The maximum number of fraction digits to display.
If neither minimumFractionDigits
or maximumFractionDigits
are set, the default behavior is to round to 3 significant digits.
import prettyBytes from 'pretty-bytes';
prettyBytes(1920, {maximumFractionDigits: 1});
prettyBytes(1920);
space
Type: boolean
Default: true
Put a space between the number and unit.
import prettyBytes from 'pretty-bytes';
prettyBytes(1920, {space: false});
prettyBytes(1920);
Related