Skip to content

Commit 226ecfd

Browse files
author
David Atchley
committed
added jshint support
1 parent 56baa95 commit 226ecfd

File tree

4 files changed

+108
-5
lines changed

4 files changed

+108
-5
lines changed

.jshintrc

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
{
2+
// JSHint Default Configuration File
3+
// See http://jshint.com/docs/ for more details
4+
5+
"maxerr" : 50, // {int} Maximum error before stopping
6+
7+
// Enforcing
8+
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
9+
"camelcase" : false, // true: Identifiers must be in camelCase
10+
"curly" : true, // true: Require {} for every new block or scope
11+
"eqeqeq" : false, // true: Require triple equals (===) for comparison
12+
"forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
13+
"immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
14+
"indent" : 4, // {int} Number of spaces to use for indentation
15+
"latedef" : false, // true: Require variables/functions to be defined before being used
16+
"newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()`
17+
"noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
18+
"noempty" : true, // true: Prohibit use of empty blocks
19+
"nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment)
20+
"plusplus" : false, // true: Prohibit use of `++` & `--`
21+
"quotmark" : false, // Quotation mark consistency:
22+
// false : do nothing (default)
23+
// true : ensure whatever is used is consistent
24+
// "single" : require single quotes
25+
// "double" : require double quotes
26+
"undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
27+
"unused" : true, // true: Require all defined variables be used
28+
"strict" : false, // true: Requires all functions run in ES5 Strict Mode
29+
"trailing" : false, // true: Prohibit trailing whitespaces
30+
"maxparams" : false, // {int} Max number of formal params allowed per function
31+
"maxdepth" : false, // {int} Max depth of nested blocks (within functions)
32+
"maxstatements" : false, // {int} Max number statements per function
33+
"maxcomplexity" : false, // {int} Max cyclomatic complexity per function
34+
"maxlen" : false, // {int} Max number of characters per line
35+
36+
// Relaxing
37+
"asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
38+
"boss" : false, // true: Tolerate assignments where comparisons would be expected
39+
"debug" : true, // true: Allow debugger statements e.g. browser breakpoints.
40+
"eqnull" : false, // true: Tolerate use of `== null`
41+
"es5" : false, // true: Allow ES5 syntax (ex: getters and setters)
42+
"esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`)
43+
"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
44+
// (ex: `for each`, multiple try/catch, function expression…)
45+
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
46+
"expr" : true, // true: Tolerate `ExpressionStatement` as Programs
47+
"funcscope" : false, // true: Tolerate defining variables inside control statements"
48+
"globalstrict" : true, // true: Allow global "use strict" (also enables 'strict')
49+
"iterator" : false, // true: Tolerate using the `__iterator__` property
50+
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
51+
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
52+
"laxcomma" : false, // true: Tolerate comma-first style coding
53+
"loopfunc" : false, // true: Tolerate functions being defined in loops
54+
"multistr" : false, // true: Tolerate multi-line strings
55+
"proto" : false, // true: Tolerate using the `__proto__` property
56+
"scripturl" : false, // true: Tolerate script-targeted URLs
57+
"smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment
58+
"shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
59+
"sub" : true, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
60+
"supernew" : true, // true: Tolerate `new function () { ... };` and `new Object;`
61+
"validthis" : false, // true: Tolerate using this in a non-constructor function
62+
63+
// Environments
64+
"browser" : true, // Web Browser (window, document, etc)
65+
"couch" : false, // CouchDB
66+
"devel" : true, // Development/debugging (alert, confirm, etc)
67+
"dojo" : false, // Dojo Toolkit
68+
"jquery" : true, // jQuery
69+
"mootools" : false, // MooTools
70+
"node" : false, // Node.js
71+
"nonstandard" : false, // Widely adopted globals (escape, unescape, etc)
72+
"prototypejs" : false, // Prototype and Scriptaculous
73+
"rhino" : false, // Rhino
74+
"worker" : false, // Web Workers
75+
"wsh" : false, // Windows Scripting Host
76+
"yui" : false, // Yahoo User Interface
77+
78+
// Legacy
79+
"nomen" : false, // true: Prohibit dangling `_` in variables
80+
"onevar" : false, // true: Allow only one `var` statement per function
81+
"passfail" : false, // true: Stop on first error
82+
"white" : false, // true: Check against strict whitespace and indentation rules
83+
84+
// Custom Globals
85+
// additional predefined global variables
86+
"predef" : [
87+
"jQuery",
88+
"$",
89+
"_"
90+
]
91+
}

Gruntfile.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22
module.exports = function(grunt) {
33
grunt.initConfig({
44
pkg: grunt.file.readJSON('package.json'),
5+
jshint: {
6+
allFiles: [
7+
'Gruntfile.js',
8+
'src/**/*.js',
9+
'test/**/*.spec.js'
10+
],
11+
options: {
12+
jshintrc: '.jshintrc'
13+
}
14+
},
515
concat: {
616
options: {
717
separator: ';'
@@ -39,7 +49,8 @@ module.exports = function(grunt) {
3949
grunt.loadNpmTasks('grunt-contrib-jasmine');
4050
grunt.loadNpmTasks('grunt-contrib-concat');
4151
grunt.loadNpmTasks('grunt-contrib-uglify');
52+
grunt.loadNpmTasks('grunt-contrib-jshint');
4253

43-
grunt.registerTask('test', ['jasmine']);
44-
grunt.registerTask('default', ['jasmine', 'concat', 'uglify']);
54+
grunt.registerTask('test', ['jshint', 'jasmine']);
55+
grunt.registerTask('default', ['jshint', 'jasmine', 'concat', 'uglify']);
4556
};

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"grunt": "^0.4.5",
1313
"grunt-contrib-concat": "^0.5.0",
1414
"grunt-contrib-jasmine": "^0.8.0",
15+
"grunt-contrib-jshint": "^0.10.0",
1516
"grunt-contrib-uglify": "^0.6.0",
1617
"grunt-jasmine-runner": "^0.6.0",
1718
"jasmine-jquery": "^2.0.5",

src/domutil.jquery.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,9 @@
107107
source = this.detach();
108108

109109
// console.log(">> typeof wrap = ", (typeof wrap));
110-
return (wrap && (wrap.jquery || jQuery.isElement(wrap) || typeof wrap === 'string'))
111-
? source[method](target).wrapAll(wrap)
112-
: source[method](target);
110+
return (wrap && (wrap.jquery || jQuery.isElement(wrap) || typeof wrap === 'string')) ?
111+
source[method](target).wrapAll(wrap) :
112+
source[method](target);
113113
}
114114
});
115115
});

0 commit comments

Comments
 (0)