Skip to content

Commit bfa1398

Browse files
committed
Refactored to utilize regex tests instead of string comparisons, minor version bump
Fixing order of variables
1 parent 2222c6e commit bfa1398

File tree

4 files changed

+18
-12
lines changed

4 files changed

+18
-12
lines changed

lib/filesize.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* @license BSD-3 <http://opensource.org/licenses/BSD-3-Clause>
77
* @link https://github.com/avoidwork/filesize.js
88
* @module filesize
9-
* @version 1.7.1
9+
* @version 1.7.2
1010
*/
1111

1212
(function (global) {
@@ -22,7 +22,7 @@
2222
*/
2323
var filesize = function (arg) {
2424
var base = 10,
25-
pos, short, num, sizes, size, result, regex, suffix, i, z;
25+
bit, byte, i, num, pos, regex, result, short, size, sizes, suffix, z, zero;
2626

2727
if (typeof arguments[2] !== "undefined") {
2828
pos = arguments[1];
@@ -39,18 +39,21 @@
3939
i = sizes.length;
4040
result = "";
4141
regex = /\.(.*)/;
42+
bit = /b$/;
43+
byte = /^B$/;
44+
zero = /^0$/;
4245

4346
while (i--) {
4447
size = sizes[i][1];
4548
suffix = sizes[i][0];
4649
if (i > 3) size = Number(size);
4750
if (num >= size) {
48-
result = (suffix === "B" ? num : (num / size)).toFixed(pos);
51+
result = (byte.test(suffix) ? num : (num / size)).toFixed(pos);
4952
if (short) {
50-
if (/b$/.test(suffix)) suffix = suffix.toLowerCase();
53+
if (bit.test(suffix)) suffix = suffix.toLowerCase();
5154
suffix = suffix.slice(0, 1);
5255
z = regex.exec(result);
53-
if (z !== null && typeof z[1] !== "undefined" && z[1] === "0") result = parseInt(result, base);
56+
if (z !== null && typeof z[1] !== "undefined" && zero.test(z[1])) result = parseInt(result, base);
5457
}
5558
result += suffix;
5659
break;

lib/filesize.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "filesize",
33
"description": "JavaScript library to generate a human readable String describing the file size",
4-
"version": "1.7.1",
4+
"version": "1.7.2",
55
"homepage": "https://github.com/avoidwork/filesize.js",
66
"author": {
77
"name": "Jason Mulligan",

src/filesize.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*/
1212
var filesize = function (arg) {
1313
var base = 10,
14-
pos, short, num, sizes, size, result, regex, suffix, i, z;
14+
bit, byte, i, num, pos, regex, result, short, size, sizes, suffix, z, zero;
1515

1616
if (typeof arguments[2] !== "undefined") {
1717
pos = arguments[1];
@@ -28,18 +28,21 @@
2828
i = sizes.length;
2929
result = "";
3030
regex = /\.(.*)/;
31+
bit = /b$/;
32+
byte = /^B$/;
33+
zero = /^0$/;
3134

3235
while (i--) {
3336
size = sizes[i][1];
3437
suffix = sizes[i][0];
3538
if (i > 3) size = Number(size);
3639
if (num >= size) {
37-
result = (suffix === "B" ? num : (num / size)).toFixed(pos);
40+
result = (byte.test(suffix) ? num : (num / size)).toFixed(pos);
3841
if (short) {
39-
if (/b$/.test(suffix)) suffix = suffix.toLowerCase();
42+
if (bit.test(suffix)) suffix = suffix.toLowerCase();
4043
suffix = suffix.slice(0, 1);
4144
z = regex.exec(result);
42-
if (z !== null && typeof z[1] !== "undefined" && z[1] === "0") result = parseInt(result, base);
45+
if (z !== null && typeof z[1] !== "undefined" && zero.test(z[1])) result = parseInt(result, base);
4346
}
4447
result += suffix;
4548
break;

0 commit comments

Comments
 (0)