tools: simplify prefer-assert-methods rule
PR-URL: https://github.com/nodejs/node/pull/17572 Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
This commit is contained in:
parent
e4a71098ef
commit
66d3e6b2f4
@ -1,15 +1,8 @@
|
||||
'use strict';
|
||||
|
||||
function isAssert(node) {
|
||||
return node.expression &&
|
||||
node.expression.type === 'CallExpression' &&
|
||||
node.expression.callee &&
|
||||
node.expression.callee.name === 'assert';
|
||||
}
|
||||
|
||||
function getFirstArg(expression) {
|
||||
return expression.arguments && expression.arguments[0];
|
||||
}
|
||||
const astSelector = 'ExpressionStatement[expression.type="CallExpression"]' +
|
||||
'[expression.callee.name="assert"]' +
|
||||
'[expression.arguments.0.type="BinaryExpression"]';
|
||||
|
||||
function parseError(method, op) {
|
||||
return `'assert.${method}' should be used instead of '${op}'`;
|
||||
@ -24,15 +17,11 @@ const preferedAssertMethod = {
|
||||
|
||||
module.exports = function(context) {
|
||||
return {
|
||||
ExpressionStatement(node) {
|
||||
if (isAssert(node)) {
|
||||
const arg = getFirstArg(node.expression);
|
||||
if (arg && arg.type === 'BinaryExpression') {
|
||||
const assertMethod = preferedAssertMethod[arg.operator];
|
||||
if (assertMethod) {
|
||||
context.report(node, parseError(assertMethod, arg.operator));
|
||||
}
|
||||
}
|
||||
[astSelector]: function(node) {
|
||||
const arg = node.expression.arguments[0];
|
||||
const assertMethod = preferedAssertMethod[arg.operator];
|
||||
if (assertMethod) {
|
||||
context.report(node, parseError(assertMethod, arg.operator));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user