tableflip/bigbytes

Name: bigbytes

Owner: TABLEFLIP

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

Created: 2018-04-12 16:04:58.0

Updated: 2018-04-12 20:21:00.0

Pushed: 2018-04-12 20:20:58.0

Homepage: null

Size: 95

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

bigbytes

Build Status dependencies Status JavaScript Style Guide

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

This is bytes.js, modified to accept/return big.js numbers.

Install
install bigbytes
Usage
bytes = require('bigbytes')
bytes.format(Big 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 | Big | 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 ''. | | unit | string?null | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to '' (which means auto detect). | | unitSeparator | string?null | 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 = require('bigbytes')
Big = require('big.js')

s(Big(1024))
utput: '1KB'

s(Big(1000))
utput: '1000B'

s(Big(1000), {thousandsSeparator: ' '})
utput: '1 000B'

s(Big(1024 * 1.7), {decimalPlaces: 0})
utput: '2KB'

s(Big(1024), {unitSeparator: ' '})
utput: '1 KB'
bytes.parse(string?number value): Big?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:

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 | Big?null | Return null upon error. Value in bytes otherwise. |

Example

bytes = require('bigbytes')
Big = require('big.js')

s('1KB')
utput: Big(1024)

s('1024')
utput: Big(1024)

s(1024)
utput: Big(1024)
Contribute

Feel free to dive in! Open an issue or submit PRs.

License

MIT


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.