errors,tools: ASCIIbetical instead of alphabetical

PR-URL: https://github.com/nodejs/node/pull/15578
Fixes: https://github.com/nodejs/node/issues/15576
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
Refael Ackermann committed 2017-09-28 09:16:20 -04:00
1 parent 2b196fb14c
commit 5f469446e1
2 files changed
+25 -24

No files matched your search

+13 -12
View File
@@ -1,15 +1,12 @@
'use strict';
const message = 'Errors in lib/internal/errors.js must be alphabetized';
const prefix = 'Out of ASCIIbetical order - ';
const opStr = ' >= ';
function errorForNode(node) {
return node.expression.arguments[0].value;
}
function isAlphabetized(previousNode, node) {
return errorForNode(previousNode).localeCompare(errorForNode(node)) < 0;
}
function isDefiningError(node) {
return node.expression &&
node.expression.type === 'CallExpression' &&
@@ -19,16 +16,20 @@ function isDefiningError(node) {
module.exports = {
create: function(context) {
var previousNode;
let previousNode;
return {
ExpressionStatement: function(node) {
if (isDefiningError(node)) {
if (previousNode && !isAlphabetized(previousNode, node)) {
context.report({ node: node, message: message });
}
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 });
}
}
};