ember-rocks
Version:
An Em(ber) command line utility to help you build an ambitious web application
45 lines (37 loc) • 1.27 kB
JavaScript
var assert = require('assert');
module.exports = function () {
};
module.exports.prototype = {
configure: function (disallowMultipleVarDeclWithAssignment) {
assert(
typeof disallowMultipleVarDeclWithAssignment === 'boolean',
'disallowMultipleVarDeclWithAssignment option requires boolean value'
);
assert(
disallowMultipleVarDeclWithAssignment === true,
'disallowMultipleVarDeclWithAssignment option requires true value or should be removed'
);
},
getOptionName: function () {
return 'disallowMultipleVarDeclWithAssignment';
},
check: function (file, errors) {
file.iterateNodesByType('VariableDeclaration', function (node) {
// allow multiple var declarations in for statement
// for (var i = 0, j = myArray.length; i < j; i++) {}
if (node.parentNode.type === 'ForStatement') {
return;
}
var hasAssignment = false;
var multiDeclaration = node.declarations.length > 1;
node.declarations.forEach(function (declaration) {
if (declaration.init) {
hasAssignment = true;
}
});
if (hasAssignment && multiDeclaration) {
errors.add('Multiple assigning variable declarations', node.loc.start);
}
});
}
};