1.0.1 • Published 8 years ago

bytes2 v1.0.1

Weekly downloads
7
License
MIT
Repository
github
Last release
8 years ago

bytes2

  _______ ___ ___ _______ _______ _______ _______
 |   _   |   Y   |       |   _   |   _   |       |
 |.  1   |   1   |.|   | |.  1___|   1___|___|   |
 |.  _   \\_   _/`-|.  |-|.  __)_|____   |/  ___/
 |:  1    \|:  |   |:  | |:  1   |:  1   |:  1  \
 |::.. .  /|::.|   |::.| |::.. . |::.. . |::.. . |
 `-------' `---'   `---' `-------`-------`-------'

Convert bytes to another unit of information.

Note Implementation based on this wikipedia article.

Note Some related modules:

Install

npm install bytes2

Examples

Require the module:

var bytes2 = require('bytes2');

Convert 1000 bytes to KB:

var value = bytes2('KB', 1000)
console.log(value) // 1

Convert 1000 bytes to KiB:

var value = bytes2('KiB', 1000)
console.log(value) // 0.9765625

Convert 1000 bytes to KiB, showing only 2 decimal places:

var value = bytes2('KiB', 1000, { decimals: 2 })
console.log(value) // 0.98

Convert 1000 bytes to KiB, prepending the units:

var value = bytes2('KiB', 1000, { prepend: true })
console.log(value) // '0.9765625 KiB'

Convert 1000 bytes to jedecKB, prepending the units:

var value = bytes2('jedecKB', 1000, { prepend: true })
console.log(value) // '0.9765625 KB'

Convert 1000 bytes to KiB, showing only 3 decimal places, prepending the units and using '-' as the seperator:

var value = bytes2('KiB', 1000, {
  decimals: 3,
  prepend: true,
  seperator: '-',
})
console.log(value) // '0.977-KiB'

bytes2(to, bytes, opts)

Returns bytes in to units of information.

OptionTypeDefaultExplanation
toStringnoneSee table below
bytesNumbernoneInteger number of bytes to convert
optsObjectsee belowOptions object, specify what you need the defaults will be filled in
opts.decimalsNumberall decimal placesThe number of decimal places to round the result to
opts.prependStringfalsePrepend the units and return a string
opts.seperatorString' 'Specify what seperator to use with the prepend option

Base-10, decimal, SI and metric:

toNumber of bytes
kB1000
MB1000000 (1000^2)
GB1000000000 (1024^3)
TB1000000000000 (1024^4)
PB1000000000000000 (1024^5)
EB1000000000000000000 (1024^6)

Base-2, binary and IEC

toNumber of bytes
KiB1024
MiB1048576 (1024^2)
GiB1073741824 (1024^3)
TiB1099511627776 (1024^4)
PiB1125899906842624 (1024^5)
EiB1152921504606847000 (1024^6)

JEDEC

Note JEDEC options works basically the same as the base-2 ones, except that if you use the prepend option, it will, for example, correctly add 'KB' and not 'KiB'.

toNumber of bytes
jedecKB1024
jedecMB1048576 (1024^2)
jedecGB1073741824 (1024^3)

Testing

Using Mocha:

npm install
npm test

Contributing

Just send a PR, or create an issue if you are not sure.

Areas ripe for contribution:

  • performance
  • bugs

License

MIT