mirror of
https://github.com/nodejs/node.git
synced 2026-10-14 10:26:26 -04:00
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:
2 files changed
+25
-24
No files matched your search
@@ -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 });
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user