Skip to content

Commit c1f49eb

Browse files
committed
Initial code commit
1 parent 7078c4f commit c1f49eb

File tree

3 files changed

+122
-0
lines changed

3 files changed

+122
-0
lines changed

README.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# filesize.js
2+
filesize.js provides a simple way to get a human readable file size string from a number (float or integer) or another string.
3+
4+
An optional second parameter is the decimal place to round to.
5+
6+
## Sample
7+
filesize(1500); // "1.46MB"
8+
filesize("1500000000"); // "1.40TB"
9+
filesize("1500000000", 0); // "1TB"
10+
11+
## Information
12+
#### License
13+
filesize.js is licensed under BSD-3 http://www.opensource.org/licenses/BSD-3-Clause
14+
15+
#### Copyright
16+
Copyright (c) 2012, Jason Mulligan <[email protected]>

debug/filesize.js

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/**
2+
* Copyright (c) 2012, Jason Mulligan <[email protected]>
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
* * Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* * Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
* * Neither the name of filesize.js nor the
13+
* names of its contributors may be used to endorse or promote products
14+
* derived from this software without specific prior written permission.
15+
*
16+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19+
* DISCLAIMED. IN NO EVENT SHALL JASON MULLIGAN BE LIABLE FOR ANY
20+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26+
*/
27+
28+
/**
29+
* filesize.js
30+
*
31+
* @author Jason Mulligan <[email protected]>
32+
* @version 1.0
33+
*/
34+
(function (window) {
35+
"use strict";
36+
37+
/**
38+
* Transforms a file size into a readable String
39+
*
40+
* @param {Mixed} arg String, Int or Float to transform
41+
* @param {Number} pos Position to round to
42+
* @return {String} Readable file size String
43+
*/
44+
var filesize = function (arg, pos) {
45+
var num = String(arg).indexOf(".") > -1 ? parseFloat(arg) : parseInt(arg),
46+
sizes = [{"kB": 0}, {"MB": 1024}, {"GB": 1048576}, {"TB": 1073741824}],
47+
i = sizes.length,
48+
result = "",
49+
size, suffix, n, x;
50+
51+
pos = typeof pos === "undefined" ? 2 : parseInt(pos);
52+
53+
while (i--) {
54+
x = sizes[i];
55+
for (n in x) {
56+
if (x.hasOwnProperty(n)) {
57+
size = x[n];
58+
suffix = n
59+
}
60+
}
61+
if (num >= size) {
62+
result = (suffix === "kB" ? num : (num / size).toFixed(pos)) + suffix;
63+
break;
64+
}
65+
}
66+
67+
return result;
68+
};
69+
70+
// AMD support
71+
typeof define === "function" ? define("filesize", [], function () { return filesize; }) : window.filesize = filesize;
72+
})(window);

production/filesize.js

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* Copyright (c) 2012, Jason Mulligan <[email protected]>
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
* * Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* * Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
* * Neither the name of filesize.js nor the
13+
* names of its contributors may be used to endorse or promote products
14+
* derived from this software without specific prior written permission.
15+
*
16+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19+
* DISCLAIMED. IN NO EVENT SHALL JASON MULLIGAN BE LIABLE FOR ANY
20+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26+
*/
27+
28+
/**
29+
* filesize.js
30+
*
31+
* @author Jason Mulligan <[email protected]>
32+
* @version 1.0
33+
*/
34+
(function(a){"use strict";var b=function(a,b){var c=String(a).indexOf(".")>-1?parseFloat(a):parseInt(a),d=[{kB:0},{MB:1024},{GB:1048576},{TB:1073741824}],e=d.length,f="",g,h,i,j;b=typeof b=="undefined"?2:parseInt(b);while(e--){j=d[e];for(i in j)j.hasOwnProperty(i)&&(g=j[i],h=i);if(c>=g){f=(h==="kB"?c:(c/g).toFixed(b))+h;break}}return f};typeof define=="function"?define("filesize",[],function(){return b}):a.filesize=b})(window)

0 commit comments

Comments
 (0)