1.0.0 • Published 5 years ago

@chbphone55/pretty-bytes v1.0.0

Weekly downloads
11
License
MIT
Repository
-
Last release
5 years ago

@chbphone55/pretty-bytes

Format sizes from bytes to human readable strings

Convert bytes to human readable strings
1032192 → ['1,008', 'KiB', 'kibibytes']

Note that this package uses base-2 (e.g. kibibyte) so every 1024 bytes is 1 KiB and every 1024 KiB is 1 MiB. Read about the difference between kilobyte and kibibyte.

Usage

Install

To install the package, use a package manager to access the NPM registry.

pnpm install @chbphone55/pretty-bytes

# or

yarn add @chbphone55/pretty-bytes

Import

The function is exported as format.

import { format } from '@chbphone55/pretty-bytes';

// or

const { format } = require('@chbphone55/pretty-bytes');

Example

To use format, pass it the size of your file in bytes. Optionally, you can pass in a locale as the second argument. The locale defaults to en.

format(0);
// => ['0', 'B', 'bytes']

format(-1);
// => ['-1', 'B', 'bytes']

format(1024);
// => ['1', 'KiB', 'kibibytes']

format(2621440);
// => ['2.5', 'MiB', 'mebibytes']

format(1041332);
// => ['1,016.926', 'KiB', 'kibibytes'];

format(1041332, 'es');
// => ['1.016,926', 'KiB', 'kibibytes']

// You can also use `navigator.language`
format(1041332, navigator.language);

API

format(
  // The number to format
  size: number,
  // The locale to use with `.toLocaleString()`
  locale?: string = 'en'
): [string, Units.short, Units.long]

namespace Units {
  type short = 'B' | 'KiB' | 'MiB' | 'GiB' | 'TiB' | 'PiB' | 'EiB' | 'ZiB' | 'YiB';
  type long = 'bytes' | 'kibibytes' | 'mebibytes' | 'gibibytes' | 'tebibytes' | 'pebibytes' | 'exbibytes' | 'zebibytes' | 'yobibytes';
}

License

MIT © 2019 Christopher H. Brown