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

Package detail

bytes

visionmedia221.1mMIT3.1.2TypeScript support: definitely-typed

Utility to parse a string bytes to bytes and vice-versa

byte, bytes, utility, parse, parser, convert, converter

readme

Bytes utility

NPM Version NPM Downloads Build Status Test Coverage

Utility to parse a string bytes (ex: 1TB) to bytes (1099511627776) and vice-versa.

Installation

This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install bytes

Usage

var bytes = require('bytes');

bytes(number|string value, [options]): number|string|null

Default export function. Delegates to either bytes.format or bytes.parse based on the type of value.

Arguments

Name Type Description
value numberstring Number value to format or string value to parse
options Object Conversion options for format

Returns

Name Type Description
results stringnumbernull Return null upon error. Numeric value in bytes, or string value otherwise.

Example

bytes(1024);
// output: '1KB'

bytes('1KB');
// output: 1024

bytes.format(number value, [options]): string|null

Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is rounded.

Arguments

Name Type Description
value number Value in bytes
options Object Conversion options

Options

Property Type Description
decimalPlaces numbernull Maximum number of decimal places to include in output. Default value to 2.
fixedDecimals booleannull Whether to always display the maximum number of decimal places. Default value to false
thousandsSeparator stringnull Example of values: ' ', ',' and '.'... Default value to ''.
unit stringnull The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to '' (which means auto detect).
unitSeparator stringnull Separator to use between number and unit. Default value to ''.

Returns

Name Type Description
results stringnull Return null upon error. String value otherwise.

Example

bytes.format(1024);
// output: '1KB'

bytes.format(1000);
// output: '1000B'

bytes.format(1000, {thousandsSeparator: ' '});
// output: '1 000B'

bytes.format(1024 * 1.7, {decimalPlaces: 0});
// output: '2KB'

bytes.format(1024, {unitSeparator: ' '});
// output: '1 KB'

bytes.parse(string|number value): number|null

Parse the string value into an integer in bytes. If no unit is given, or value is a number, it is assumed the value is in bytes.

Supported units and abbreviations are as follows and are case-insensitive:

  • b for bytes
  • kb for kilobytes
  • mb for megabytes
  • gb for gigabytes
  • tb for terabytes
  • pb for petabytes

The units are in powers of two, not ten. This means 1kb = 1024b according to this parser.

Arguments

Name Type Description
value stringnumber String to parse, or number in bytes.

Returns

Name Type Description
results numbernull Return null upon error. Value in bytes otherwise.

Example

bytes.parse('1KB');
// output: 1024

bytes.parse('1024');
// output: 1024

bytes.parse(1024);
// output: 1024

License

MIT

changelog

3.1.2 / 2022-01-27

  • Fix return value for un-parsable strings

3.1.1 / 2021-11-15

  • Fix "thousandsSeparator" incorrecting formatting fractional part

3.1.0 / 2019-01-22

  • Add petabyte (pb) support

3.0.0 / 2017-08-31

  • Change "kB" to "KB" in format output
  • Remove support for Node.js 0.6
  • Remove support for ComponentJS

2.5.0 / 2017-03-24

  • Add option "unit"

2.4.0 / 2016-06-01

  • Add option "unitSeparator"

2.3.0 / 2016-02-15

  • Drop partial bytes on all parsed units
  • Fix non-finite numbers to .format to return null
  • Fix parsing byte string that looks like hex
  • perf: hoist regular expressions

2.2.0 / 2015-11-13

  • add option "decimalPlaces"
  • add option "fixedDecimals"

2.1.0 / 2015-05-21

  • add .format export
  • add .parse export

2.0.2 / 2015-05-20

  • remove map recreation
  • remove unnecessary object construction

2.0.1 / 2015-05-07

  • fix browserify require
  • remove node.extend dependency

2.0.0 / 2015-04-12

  • add option "case"
  • add option "thousandsSeparator"
  • return "null" on invalid parse input
  • support proper round-trip: bytes(bytes(num)) === num
  • units no longer case sensitive when parsing

1.0.0 / 2014-05-05

  • add negative support. fixes #6

0.3.0 / 2014-03-19

  • added terabyte support

0.2.1 / 2013-04-01

  • add .component

0.2.0 / 2012-10-28

  • bytes(200).should.eql('200b')

0.1.0 / 2012-07-04

  • add bytes to string conversion [yields]