jscs
Version:
JavaScript Style Checker
49 lines (38 loc) • 1.62 kB
JavaScript
var assert = require('assert');
module.exports = function() {};
module.exports.prototype = {
configure: function(disallow) {
assert(
typeof disallow === 'boolean',
this.getOptionName() + ' option requires boolean value'
);
assert(
disallow === true,
this.getOptionName() + ' option requires true value or should be removed'
);
},
getOptionName: function() {
return 'disallowSpacesInsideArrayBrackets';
},
check: function(file, errors) {
file.iterateNodesByType('ArrayExpression', function(node) {
var tokens = file.getTokens();
var openingBracketPos = file.getTokenPosByRangeStart(node.range[0]);
var openingBracket = tokens[openingBracketPos];
var nextToken = tokens[openingBracketPos + 1];
if (openingBracket.loc.start.line === nextToken.loc.start.line &&
openingBracket.range[1] !== nextToken.range[0]
) {
errors.add('Illegal space after opening square brace', openingBracket.loc.end);
}
var closingBracketPos = file.getTokenPosByRangeStart(node.range[1] - 1);
var closingBracket = tokens[closingBracketPos];
var prevToken = tokens[closingBracketPos - 1];
if (closingBracket.loc.start.line === prevToken.loc.start.line &&
closingBracket.range[0] !== prevToken.range[1]
) {
errors.add('Illegal space before closing square brace', prevToken.loc.end);
}
});
}
};