Skip to content

Commit 2c249e7

Browse files
committed
Updated grunt build, implemented jshint for linting, fixes #32
1 parent 642966b commit 2c249e7

9 files changed

+199
-137
lines changed

.jshintrc

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"smarttabs": true,
3+
"latedef": true,
4+
"undef": true,
5+
"unused": true,
6+
"proto": true,
7+
"supernew": true,
8+
"quotmark": "double",
9+
"curly": true,
10+
"newcap": true,
11+
"noarg": true,
12+
"noempty": false,
13+
"nonew": true,
14+
"quotmark": "double",
15+
"regexp": false,
16+
"trailing": true,
17+
"boss": true,
18+
"eqnull": true,
19+
"expr": true,
20+
"browser": true,
21+
"globals": {
22+
"require": true,
23+
"module": true,
24+
"define": true
25+
}
26+
}

.npmignore

+1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ lib/filesize.min.js
33
src
44
test
55
.jamignore
6+
.jshintrc
67
.travis.yml
78
Gruntfile.js

Gruntfile.js

+37-33
Original file line numberDiff line numberDiff line change
@@ -21,49 +21,53 @@ module.exports = function(grunt) {
2121
],
2222
dest : "lib/filesize.js"
2323
}
24+
},exec : {
25+
closure : {
26+
cmd : "cd lib\nclosure-compiler --js <%= pkg.name %>.js --js_output_file <%= pkg.name %>.min.js --create_source_map ./<%= pkg.name %>.map"
27+
},
28+
sourcemap : {
29+
cmd : "echo //@ sourceMappingURL=<%= pkg.name %>.map >> lib/<%= pkg.name %>.min.js"
30+
}
31+
},
32+
jshint : {
33+
options : {
34+
jshintrc : ".jshintrc"
35+
},
36+
src : "lib/<%= pkg.name %>.js"
2437
},
25-
nodeunit: {
38+
nodeunit : {
2639
all : ["test/*.js"]
2740
},
28-
uglify: {
29-
options: {
30-
banner : "/**\n" +
31-
" * <%= pkg.name %>\n" +
32-
" *\n" +
33-
" * @author <%= pkg.author.name %> <<%= pkg.author.email %>>\n" +
34-
" * @copyright <%= grunt.template.today('yyyy') %> <%= pkg.author.name %>\n" +
35-
" * @license <%= pkg.licenses[0].type %> <<%= pkg.licenses[0].url %>>\n" +
36-
" * @link <%= pkg.homepage %>\n" +
37-
" * @module <%= pkg.name %>\n" +
38-
" * @version <%= pkg.version %>\n" +
39-
" */\n",
40-
mangle: {
41-
except: ["filesize"]
42-
}
41+
sed : {
42+
"version" : {
43+
pattern : "{{VERSION}}",
44+
replacement : "<%= pkg.version %>",
45+
path : ["<%= concat.dist.dest %>"]
46+
}
47+
},
48+
watch : {
49+
js : {
50+
files : "<%= concat.dist.src %>",
51+
tasks : "build"
4352
},
44-
target: {
45-
files: {
46-
"lib/<%= pkg.name %>.min.js" : ["<%= concat.dist.dest %>"]
47-
}
53+
pkg: {
54+
files : "package.json",
55+
tasks : "build"
4856
}
4957
}
5058
});
5159

60+
// tasks
61+
grunt.loadNpmTasks("grunt-sed");
62+
grunt.loadNpmTasks("grunt-exec");
5263
grunt.loadNpmTasks("grunt-contrib-concat");
5364
grunt.loadNpmTasks("grunt-contrib-nodeunit");
54-
grunt.loadNpmTasks("grunt-contrib-uglify");
65+
grunt.loadNpmTasks("grunt-contrib-jshint");
66+
grunt.loadNpmTasks('grunt-contrib-watch');
5567

68+
// aliases
69+
grunt.registerTask("lint", ["jshint"]);
5670
grunt.registerTask("test", ["nodeunit"]);
57-
58-
grunt.registerTask("version", function () {
59-
var cfg = grunt.config("pkg"),
60-
ver = cfg.version,
61-
fn = "lib/" + cfg.name + ".js",
62-
fp = grunt.file.read(fn);
63-
64-
console.log("Setting version to: " + ver);
65-
grunt.file.write(fn, fp.replace(/\{\{VERSION\}\}/g, ver));
66-
});
67-
68-
grunt.registerTask("default", ["concat", "version", "uglify", "test"]);
71+
grunt.registerTask("build", ["concat", "sed", "exec"]);
72+
grunt.registerTask("default", ["build", "test", "lint"]);
6973
};

lib/filesize.js

+41-31
Original file line numberDiff line numberDiff line change
@@ -6,64 +6,66 @@
66
* @license BSD-3 <https://raw.github.com/avoidwork/filesize.js/master/LICENSE>
77
* @link http://filesizejs.com
88
* @module filesize
9-
* @version 1.9.3
9+
* @version 1.9.4
1010
*/
1111
( function ( global ) {
1212
"use strict";
1313

1414
var base = 10,
1515
right = /\.(.*)/,
1616
bit = /b$/,
17-
byte = /^B$/,
17+
bite = /^B$/,
1818
zero = /^0$/,
19-
options = {
20-
all : {
21-
increments : [["B", 1], ["Kb", 128], ["KB", 1024], ["Mb", 131072], ["MB", 1.049e+6], ["Gb", 1.342e+8], ["GB", 1.074e+9], ["Tb", 1.374e+11], ["TB", 1.1e+12], ["Pb", 1.407e+14], ["PB", 1.126e+15]],
22-
nth : 11
23-
},
24-
bitless : {
25-
increments : [["B", 1], ["KB", 1024], ["MB", 1.049e+6], ["GB", 1.074e+9], ["TB", 1.1e+12], ["PB", 1.126e+15]],
26-
nth : 6
27-
}
28-
};
19+
options;
20+
21+
options = {
22+
all : {
23+
increments : [["B", 1], ["Kb", 128], ["KB", 1024], ["Mb", 131072], ["MB", 1.049e+6], ["Gb", 1.342e+8], ["GB", 1.074e+9], ["Tb", 1.374e+11], ["TB", 1.1e+12], ["Pb", 1.407e+14], ["PB", 1.126e+15]],
24+
nth : 11
25+
},
26+
bitless : {
27+
increments : [["B", 1], ["KB", 1024], ["MB", 1.049e+6], ["GB", 1.074e+9], ["TB", 1.1e+12], ["PB", 1.126e+15]],
28+
nth : 6
29+
}
30+
};
2931

3032
/**
3133
* filesize
32-
*
34+
*
3335
* @param {Mixed} arg String, Int or Float to transform
34-
* @param {Mixed} pos [Optional] Position to round to, defaults to 2 if short is ommitted, or `true` for shorthand output
36+
* @param {Mixed} pos [Optional] Position to round to, defaults to 2 if shrt is ommitted, or `true` for shrthand output
3537
* @param {Boolean} bits [Optional] Determines if `bit` sizes are used for result calculation, default is true
3638
* @return {String} Readable file size String
3739
*/
3840
function filesize (arg) {
3941
var result = "",
4042
bits = true,
4143
skip = false,
42-
i, neg, num, pos, short, size, sizes, suffix, z;
44+
i, neg, num, pos, shrt, size, sizes, suffix, z;
4345

4446
// Determining arguments
4547
if (arguments[3] !== undefined) {
46-
pos = arguments[1];
47-
short = arguments[2];
48-
bits = arguments[3];
48+
pos = arguments[1];
49+
shrt = arguments[2];
50+
bits = arguments[3];
4951
}
5052
else {
51-
typeof arguments[1] === "boolean" ? short = arguments[1] : pos = arguments[1];
53+
typeof arguments[1] === "boolean" ? shrt = arguments[1] : pos = arguments[1];
5254

5355
if ( typeof arguments[2] === "boolean" ) {
5456
bits = arguments[2];
5557
}
5658
}
5759

5860
if ( isNaN( arg ) || ( pos !== undefined && isNaN( pos ) ) ) {
59-
throw Error("Invalid arguments");
61+
throw new Error("Invalid arguments");
6062
}
6163

62-
short = ( short === true );
63-
bits = ( bits === true );
64-
pos = short ? 1 : ( pos === undefined ? 2 : parseInt( pos, base ) );
65-
num = Number( arg );
66-
neg = ( num < 0 );
64+
shrt = ( shrt === true );
65+
bits = ( bits === true );
66+
pos = shrt ? 1 : ( pos === undefined ? 2 : parseInt( pos, base ) );
67+
num = Number( arg );
68+
neg = ( num < 0 );
6769

6870
// Flipping a negative number to determine the size
6971
if ( neg ) {
@@ -72,7 +74,12 @@
7274

7375
// Zero is now a special case because bytes divide by 1
7476
if ( num === 0 ) {
75-
result = "0B";
77+
if ( shrt ) {
78+
result = "0";
79+
}
80+
else {
81+
result = "0 B";
82+
}
7683
}
7784
else {
7885
if ( bits ) {
@@ -90,14 +97,14 @@
9097

9198
if ( num >= size ) {
9299
// Treating bytes as cardinal
93-
if ( byte.test( suffix ) ) {
100+
if ( bite.test( suffix ) ) {
94101
skip = true;
95102
pos = 0;
96103
}
97104

98105
result = ( num / size ).toFixed( pos );
99106

100-
if ( !skip && short ) {
107+
if ( !skip && shrt ) {
101108
if ( bits && bit.test( suffix ) ) {
102109
suffix = suffix.toLowerCase();
103110
}
@@ -108,9 +115,12 @@
108115
if ( z !== null && z[1] !== undefined && zero.test( z[1] ) ) {
109116
result = parseInt( result, base );
110117
}
111-
}
112118

113-
result += suffix;
119+
result += suffix;
120+
}
121+
else if ( !shrt ) {
122+
result += " " + suffix;
123+
}
114124
break;
115125
}
116126
}
@@ -122,7 +132,7 @@
122132
}
123133

124134
return result;
125-
};
135+
}
126136

127137
// CommonJS, AMD, script tag
128138
if ( typeof exports !== "undefined" ) {

lib/filesize.map

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"version":3,
3+
"file":"filesize.min.js",
4+
"lineCount":10,
5+
"mappings":"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",
6+
"sources":["filesize.js"],
7+
"names":["global","filesize","arg","result","bits","skip","pos","shrt","size","sizes","undefined","isNaN","Error","parseInt","base","num","Number","neg","options","all","increments","i","nth","bitless","suffix","bite","test","toFixed","bit","toLowerCase","charAt","z","right","exec","zero","exports","module","define"]
8+
}

lib/filesize.min.js

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

package.json

+9-6
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.9.3",
4+
"version": "1.9.4",
55
"homepage": "http://filesizejs.com",
66
"author": {
77
"name": "Jason Mulligan",
@@ -28,11 +28,14 @@
2828
"test": "grunt test"
2929
},
3030
"devDependencies": {
31-
"grunt" : "~0.4.0",
32-
"grunt-cli" : "~ 0.1.6",
33-
"grunt-contrib-concat" : "~ 0.1.3",
34-
"grunt-contrib-nodeunit" : "~ 0.1.2",
35-
"grunt-contrib-uglify" : "~ 0.1.2"
31+
"grunt": "~0.4.1",
32+
"grunt-exec": "~0.4",
33+
"grunt-sed": "~0.1",
34+
"grunt-contrib-concat": "~0.1.3",
35+
"grunt-contrib-jshint": "~0.1",
36+
"grunt-contrib-nodeunit": "~0.1.2",
37+
"grunt-contrib-watch": "~0.2",
38+
"grunt-shell": "~0.2.1"
3639
},
3740
"keywords": ["file", "filesize", "size", "readable", "filesystem"]
3841
}

0 commit comments

Comments
 (0)