Socket
Socket
Sign inDemoInstall

bytes

Package Overview
Dependencies
0
Maintainers
2
Versions
18
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.2 to 2.1.0

6

History.md

@@ -0,1 +1,7 @@

2.1.0 / 2015-05-21
==================
* add `.format` export
* add `.parse` export
2.0.2 / 2015-05-20

@@ -2,0 +8,0 @@ ==================

101

index.js

@@ -0,1 +1,8 @@

/*!
* bytes
* Copyright(c) 2012-2014 TJ Holowaychuk
* Copyright(c) 2015 Jed Watson
* MIT Licensed
*/
'use strict';

@@ -9,10 +16,17 @@

module.exports = bytes;
module.exports.format = format;
module.exports.parse = parse;
/**
* Module dependencies.
* Module variables.
* @private
*/
var convert = require('./lib/byte-convert');
var parse = require('./lib/byte-parse');
var map = {
b: 1,
kb: 1 << 10,
mb: 1 << 20,
gb: 1 << 30,
tb: ((1 << 30) * 1024)
};

@@ -37,3 +51,3 @@ /**

if (typeof value === 'number') {
return convert(value, options);
return format(value, options);
}

@@ -43,1 +57,80 @@

}
/**
* 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.
*
* @param {number} value
* @param {object} [options]
* @param {string} [options.thousandsSeparator=]
* @public
*/
function format(val, options) {
if (typeof val !== 'number') {
return null;
}
var mag = Math.abs(val);
var thousandsSeparator = (options && options.thousandsSeparator) || '';
var unit = 'B';
var value = val;
if (mag >= map.tb) {
value = Math.round(value / map.tb * 100) / 100;
unit = 'TB';
} else if (mag >= map.gb) {
value = Math.round(value / map.gb * 100) / 100;
unit = 'GB';
} else if (mag >= map.mb) {
value = Math.round(value / map.mb * 100) / 100;
unit = 'MB';
} else if (mag >= map.kb) {
value = Math.round(value / map.kb * 100) / 100;
unit = 'kB';
}
if (thousandsSeparator) {
value = value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSeparator);
}
return value + unit;
}
/**
* Parse the string value into an integer in bytes.
*
* If no unit is given, it is assumed the value is in bytes.
*
* @param {number|string} val
* @public
*/
function parse(val) {
if (typeof val === 'number' && !isNaN(val)) {
return val;
}
if (typeof val !== 'string') {
return null;
}
// Test if the string passed is valid
var results = val.match(/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb)$/i);
var floatValue;
var unit = 'b';
if (!results) {
// Nothing could be extracted from the given string
floatValue = parseInt(val);
unit = 'b'
} else {
// Retrieve the value and the unit
floatValue = parseFloat(results[1]);
unit = results[4].toLowerCase();
}
return map[unit] * floatValue;
}

3

package.json
{
"name": "bytes",
"description": "Utility to parse a string bytes to bytes and vice-versa",
"version": "2.0.2",
"version": "2.1.0",
"author": "TJ Holowaychuk <tj@vision-media.ca> (http://tjholowaychuk.com)",

@@ -29,3 +29,2 @@ "contributors": [

"files": [
"lib/",
"History.md",

@@ -32,0 +31,0 @@ "LICENSE",

@@ -7,3 +7,2 @@ # Bytes utility

```js

@@ -13,5 +12,5 @@ var bytes = require('bytes');

#### bytes(number value, [options]): string|null
#### bytes.format(number value, [options]): string|null
Convert 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
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.

@@ -51,3 +50,3 @@

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

@@ -54,0 +53,0 @@ Parse the string value into an integer in bytes. If no unit is given, it is assumed the value is in bytes.

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc