• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const { isDefiningError } = require('./rules-utils.js');
4
5const prefix = 'Out of ASCIIbetical order - ';
6const opStr = ' >= ';
7
8function errorForNode(node) {
9  return node.expression.arguments[0].value;
10}
11
12module.exports = {
13  create: function(context) {
14    let previousNode;
15    return {
16      ExpressionStatement: function(node) {
17        if (!isDefiningError(node)) return;
18        if (!previousNode) {
19          previousNode = node;
20          return;
21        }
22        const prev = errorForNode(previousNode);
23        const curr = errorForNode(node);
24        previousNode = node;
25        if (prev >= curr) {
26          const message = [prefix, prev, opStr, curr].join('');
27          context.report({ node, message });
28        }
29      }
30    };
31  }
32};
33