Bytes utility

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.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 | `number`｜`null` | Maximum number of decimal places to include in output. Default value to `2`.
fixedDecimals | `boolean`｜`null` | Whether to always display the maximum number of decimal places. Default value to `false`

thousandsSeparator

`string`｜`null`

Example of values: ‘’ '`,`','`and`.`... Default value to`''`. \ilinebr </td> </tr> <tr class="markdownTableRowEven"> <td class="markdownTableBodyNone"> unit \ilinebr </td> <td class="markdownTableBodyNone">`string`｜`null`\ilinebr </td> <td class="markdownTableBodyNone"> The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to`''`(which means auto detect). \ilinebr </td> </tr> <tr class="markdownTableRowOdd"> <td class="markdownTableBodyNone"> unitSeparator \ilinebr </td> <td class="markdownTableBodyNone">`string`｜`null`\ilinebr </td> <td class="markdownTableBodyNone"> Separator to use between number and unit. Default value to`''`.

Returns

Name | Type | Description
--- | --- | ---
results | `string`｜`null` | Return null upon error. String value otherwise.

Example

bytes(1024);
// output: '1KB'
bytes(1000);
// output: '1000B'
bytes(1000, {thousandsSeparator: ' '});
// output: '1 000B'
bytes(1024 * 1.7, {decimalPlaces: 0});
// output: '2KB'
bytes(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 | `string`｜`number` | String to parse, or number in bytes.

Returns

Name | Type | Description
--- | --- | ---
results | `number`｜`null` | Return null upon error. Value in bytes otherwise.

Example

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

# License

[MIT](LICENSE)