summaryrefslogtreecommitdiff
path: root/tools/eslint-rules/alphabetize-errors.js
blob: 8d25f7973d62a69d7ddb39a48fe59c96379e56c3 (plain)
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
'use strict';

const { isDefiningError } = require('./rules-utils.js');

const prefix = 'Out of ASCIIbetical order - ';
const opStr = ' >= ';

function errorForNode(node) {
  return node.expression.arguments[0].value;
}

module.exports = {
  create: function(context) {
    let previousNode;
    return {
      ExpressionStatement: function(node) {
        if (!isDefiningError(node)) return;
        if (!previousNode) {
          previousNode = node;
          return;
        }
        const prev = errorForNode(previousNode);
        const curr = errorForNode(node);
        previousNode = node;
        if (prev >= curr) {
          const message = [prefix, prev, opStr, curr].join('');
          context.report({ node, message });
        }
      },
    };
  },
};