Blame view
node_modules/eslint/lib/rules/sort-vars.js
1.57 KB
c39994410
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
/** * @fileoverview Rule to require sorting of variables within a single Variable Declaration block * @author Ilya Volodin */ "use strict"; //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ module.exports = function(context) { var configuration = context.options[0] || {}, ignoreCase = configuration.ignoreCase || false; return { "VariableDeclaration": function(node) { node.declarations.reduce(function(memo, decl) { if (decl.id.type === "ObjectPattern" || decl.id.type === "ArrayPattern") { return memo; } var lastVariableName = memo.id.name, currenVariableName = decl.id.name; if (ignoreCase) { lastVariableName = lastVariableName.toLowerCase(); currenVariableName = currenVariableName.toLowerCase(); } if (currenVariableName < lastVariableName) { context.report(decl, "Variables within the same declaration block should be sorted alphabetically"); return memo; } else { return decl; } }, node.declarations[0]); } }; }; module.exports.schema = [ { "type": "object", "properties": { "ignoreCase": { "type": "boolean" } }, "additionalProperties": false } ]; |