Skip to content

Commit ba9823d

Browse files
author
Di Wu
committed
new version of jshint caught some new issues, fixing issues
1 parent 5282772 commit ba9823d

32 files changed

+82
-69
lines changed

.jshintrc

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
{
2-
"node": true
2+
"node": true,
3+
"globals": {
4+
"describe" : true,
5+
"it" : true,
6+
"Node" : true,
7+
"suite" : true,
8+
"test" : true
9+
}
310
}

lib/column.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ var valueExpressionMixin = require('./node/valueExpression');
88

99
var Column = function(config) {
1010
this.table = config.table;
11-
for(var name in config) {
12-
this[name] = config[name];
11+
for (var name in config) {
12+
if (config.hasOwnProperty(name)) {
13+
this[name] = config[name];
14+
}
1315
}
1416
this.asc = this.ascending = this;
1517
this.alias = null;

lib/dialect/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
// given a dialect name, return the class
24
var getDialect = function(dialect) {
35
switch (dialect.toLowerCase()) {

lib/dialect/mysql.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ Mysql.prototype.visitRenameColumn = function(renameColumn) {
4848

4949
Mysql.prototype.visitInsert = function(insert) {
5050
var result = Postgres.prototype.visitInsert.call(this, insert);
51-
if (result[2] === 'DEFAULT VALUES') result[2] = '() VALUES ()';
51+
if (result[2] === 'DEFAULT VALUES') {
52+
result[2] = '() VALUES ()';
53+
}
5254
return result;
5355
};
5456

lib/dialect/postgres.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ Postgres.prototype._getParameterValue = function(value) {
5959
};
6060

6161
Postgres.prototype._getParameterPlaceholder = function(index, value) {
62+
/* jshint unused: false */
6263
return '$' + index;
6364
};
6465

@@ -245,8 +246,6 @@ Postgres.prototype.visitAlter = function(alter) {
245246
this._visitingAlter = true;
246247
// don't auto-generate from clause
247248
var table = this._queryNode.table;
248-
// TODO: col_nodes is unused?
249-
var col_nodes = table.columns.map(function(col) { return col.toNode(); });
250249
var result = [
251250
'ALTER TABLE',
252251
this.visit(table.toNode()),
@@ -508,6 +507,7 @@ Postgres.prototype.visitParameter = function(parameter) {
508507
};
509508

510509
Postgres.prototype.visitDefault = function(parameter) {
510+
/* jshint unused: false */
511511
return ['DEFAULT'];
512512
};
513513

@@ -557,6 +557,7 @@ Postgres.prototype.visitModifier = function(node) {
557557
};
558558

559559
Postgres.prototype.visitIndexes = function(node) {
560+
/* jshint unused: false */
560561
var tableName = this.visit(this._queryNode.table.toNode());
561562

562563
return [

lib/joiner.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
1+
'use strict';
2+
13
var getPrimaryKeyColumn = function(table) {
2-
for(var i = 0; i < table.columns.length; i++) {
4+
for (var i = 0; i < table.columns.length; i++) {
35
var col = table.columns[i];
4-
if(col.primaryKey) {
6+
if (col.primaryKey) {
57
return col;
68
}
79
}
810
};
911

1012
var findReference = function(left, right) {
1113
// find reference
12-
for(var i = 0; i < right.columns.length; i++) {
14+
for (var i = 0; i < right.columns.length; i++) {
1315
var col = right.columns[i];
14-
if(col.references) {
16+
if (col.references) {
1517
var leftName = left.getName();
16-
if(col.references == leftName || col.references.table == leftName) {
18+
if (col.references === leftName || col.references.table === leftName) {
1719
var leftCol = left[col.references.column] || getPrimaryKeyColumn(left);
1820
return {
1921
left: leftCol,
@@ -29,9 +31,8 @@ module.exports = {
2931
// requires one column to have { references: {table: 'foreignTableName', column: 'foreignColumnName'}}
3032
// or to have { references: 'foreignTableName'} -- in which case the foreign table's primary key is assumed
3133
leftJoin: function(left, right) {
32-
var leftCol, rightCol;
3334
var ref = findReference(left, right);
34-
if(!ref) {
35+
if (!ref) {
3536
ref = findReference(right, left);
3637
}
3738
return left.join(right).on(ref.left.equals(ref.right));

lib/node/index.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
'use strict';
22

3-
var _ = require('lodash');
43
var assert = require('assert');
54
var getDialect = require('../dialect');
65
var util = require('util');
76

8-
/* jshint unused: false */
97
var Node = function(type) {
8+
/* jshint unused: false */
109
this.nodes = [];
1110
};
1211

@@ -62,12 +61,14 @@ Node.define = function(def) {
6261
Node.call(this);
6362
};
6463
// allow custom sub-class constructor
65-
if(def.constructor && def.constructor != {}.constructor) {
64+
if(def.constructor && def.constructor !== {}.constructor) {
6665
c = def.constructor;
6766
}
6867
util.inherits(c, Node);
69-
for(var key in def) {
70-
c.prototype[key] = def[key];
68+
for (var key in def) {
69+
if (def.hasOwnProperty(key)) {
70+
c.prototype[key] = def[key];
71+
}
7172
}
7273
return c;
7374
};

lib/node/indexes.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
'use strict';
22

33
var Node = require('./');
4-
var IndexesNode = module.exports = Node.define({
4+
5+
var IndexesNode = Node.define({
56
type: 'INDEXES',
67

78
constructor: function(table) {
@@ -10,3 +11,5 @@ var IndexesNode = module.exports = Node.define({
1011
this.table = table;
1112
}
1213
});
14+
15+
module.exports = IndexesNode;

lib/node/orderByColumn.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
'use strict';
22

33
var Node = require(__dirname);
4-
var OrderByColumn = module.exports = Node.define({
4+
var OrderByColumn = Node.define({
55
type: 'ORDER BY COLUMN',
66
constructor: function(config) {
77
Node.call(this);
88
this.column = config.column;
99
this.direction = config.direction;
1010
}
1111
});
12+
13+
module.exports = OrderByColumn;

lib/node/query.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ var Query = Node.define({
5252
constructor: function(table) {
5353
Node.call(this);
5454
this.table = table;
55-
if (table) this.sql = table.sql;
55+
if (table) {
56+
this.sql = table.sql;
57+
}
5658
},
5759
select: function() {
5860
var select;
@@ -101,7 +103,9 @@ var Query = Node.define({
101103
return this;
102104
}
103105
// calling #where twice functions like calling #where & then #and
104-
if (this.whereClause) return this.and(node);
106+
if (this.whereClause) {
107+
return this.and(node);
108+
}
105109
this.whereClause = new Where(this.table);
106110
this.whereClause.add(node);
107111
return this.add(this.whereClause);
@@ -141,7 +145,7 @@ var Query = Node.define({
141145

142146
var args = sliced(arguments);
143147
// object literal
144-
if (arguments.length == 1 && !o.toNode && !o.forEach) {
148+
if (arguments.length === 1 && !o.toNode && !o.forEach) {
145149
args = Object.keys(o).map(function(key) {
146150
return self.table.get(key).value(o[key]);
147151
});

lib/node/valueExpression.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
'use strict';
22

3-
var _ = require('lodash');
4-
var Node = require(__dirname);
53
var ParameterNode = require(__dirname + '/parameter');
64

75
// Process values, wrapping them in ParameterNode if necessary.
@@ -12,7 +10,7 @@ var processParams = function(val) {
1210
// Value expressions can be composed to form new value expressions.
1311
// ValueExpressionMixin is evaluated at runtime, hence the
1412
// "thunk" around it.
15-
var ValueExpressionMixin = module.exports = function() {
13+
var ValueExpressionMixin = function() {
1614
var PostfixUnaryNode = require(__dirname + '/postfixUnary');
1715
var BinaryNode = require(__dirname + '/binary');
1816
var TernaryNode = require(__dirname + '/ternary');
@@ -52,7 +50,7 @@ var ValueExpressionMixin = module.exports = function() {
5250

5351
var castMethod = function(dataType) {
5452
return new CastNode(this.toNode(), dataType);
55-
}
53+
};
5654

5755
return {
5856
isNull : postfixUnaryMethod('IS NULL'),
@@ -86,3 +84,5 @@ var ValueExpressionMixin = module.exports = function() {
8684
cast : castMethod
8785
};
8886
};
87+
88+
module.exports = ValueExpressionMixin;

lib/node/where.js

+11-8
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,21 @@ var TextNode = require(__dirname + '/text');
66

77
var normalizeNode = function(table, node) {
88
var result = node;
9-
if(typeof node == 'string') {
9+
if(typeof node === 'string') {
1010
result = new TextNode('(' + node + ')');
1111
}
12-
else if (!node.toNode && typeof node == 'object'){
12+
else if (!node.toNode && typeof node === 'object'){
1313
result = false;
1414
for (var colName in node) {
15-
var column = table.getColumn(colName);
16-
var query = column.equals(node[colName]);
17-
if (!result)
18-
result = query;
19-
else
20-
result = result.and(query);
15+
if (node.hasOwnProperty(colName)) {
16+
var column = table.getColumn(colName);
17+
var query = column.equals(node[colName]);
18+
if (!result) {
19+
result = query;
20+
} else {
21+
result = result.and(query);
22+
}
23+
}
2124
}
2225
}
2326
return result;

lib/table.js

+11-7
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,24 @@ var Table = function(config) {
1515
this._initialConfig = config;
1616
this.columns = [];
1717
this.table = this;
18-
if (!config.sql) config.sql = require('./index');
18+
if (!config.sql) {
19+
config.sql = require('./index');
20+
}
1921
this.sql = config.sql;
2022
};
2123

2224
Table.define = function(config) {
2325
var table = new Table(config);
2426
// allow hash of columns as well as array
25-
if(config.columns && !util.isArray(config.columns)) {
27+
if (config.columns && !util.isArray(config.columns)) {
2628
var cols = [];
2729

28-
for(var key in config.columns) {
29-
var col = config.columns[key];
30-
col.name = key;
31-
cols.push(col);
30+
for (var key in config.columns) {
31+
if (config.columns.hasOwnProperty(key)) {
32+
var col = config.columns[key];
33+
col.name = key;
34+
cols.push(col);
35+
}
3236
}
3337

3438
config.columns = cols;
@@ -89,7 +93,7 @@ Table.prototype.get =
8993
function(colName) {
9094
for(var i = 0; i < this.columns.length; i++) {
9195
var col = this.columns[i];
92-
if(col.name == colName) {
96+
if (col.name === colName) {
9397
return col;
9498
}
9599
}

test/binary-clause-tests.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* global test */
21
'use strict';
32

43
var assert = require('assert');

test/clause-definition.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* global test */
21
'use strict';
32

43
var assert = require('assert');

test/column-tests.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var assert = require('assert');
24
var sql = require(__dirname + '/../lib');
35

test/dialects/aggregate-tests.js

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
/* global test */
21
'use strict';
32

4-
var assert = require('assert');
53
var Harness = require('./support');
64
var post = Harness.definePostTable();
75

test/dialects/alias-tests.js

-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
var Harness = require('./support');
44
var customer = Harness.defineCustomerTable();
5-
var post = Harness.definePostTable();
6-
var Table = require(__dirname + '/../../lib/table');
75

86
Harness.test({
97
query: customer.select(customer.name.isNull().as('nameIsNull')),

test/dialects/binary-clause-tests.js

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
var Harness = require('./support');
44
var customer = Harness.defineCustomerTable();
55
var post = Harness.definePostTable();
6-
var Table = require(__dirname + '/../../lib/table');
76

87
Harness.test({
98
query: customer.select(customer.name.plus(customer.age)),

test/dialects/cast-tests.js

-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
var Harness = require('./support');
44
var customer = Harness.defineCustomerTable();
5-
var post = Harness.definePostTable();
6-
var Table = require(__dirname + '/../../lib/table');
75

86
// Cast columns.
97
Harness.test({

test/dialects/subquery-tests.js

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
var Harness = require('./support');
44
var customer = Harness.defineCustomerTable();
55
var user = Harness.defineUserTable();
6-
var Table = require('../../lib/table');
76
var Sql = require('../../lib');
87

98
Harness.test({

test/dialects/support.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* global test */
21
'use strict';
32
var assert = require('assert');
43

test/dialects/ternary-clause-tests.js

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
var Harness = require('./support');
44
var customer = Harness.defineCustomerTable();
55
var post = Harness.definePostTable();
6-
var Table = require(__dirname + '/../../lib/table');
76

87
Harness.test({
98
query: customer.select().where(customer.age.between(18, 25)),

test/dialects/tostring-tests.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
'use strict';
22

3-
var assert = require('assert');
4-
var Harness = require('./support');
5-
var ParameterNode = require('../../lib/node/parameter');
6-
var post = Harness.definePostTable();
3+
var assert = require('assert');
4+
var Harness = require('./support');
5+
var post = Harness.definePostTable();
76

87
// Null
98
Harness.test({

0 commit comments

Comments
 (0)