Skip to content

Commit

Permalink
tools: update eslint-check.js to object style
Browse files Browse the repository at this point in the history
Updated rule from deprecated function-style
format to object-style format.

Refs: https://eslint.org/docs/latest/developer-guide/working-with-rules
PR-URL: #44706
Reviewed-By: Rich Trott <[email protected]>
  • Loading branch information
andiemontoyeah authored and juanarbol committed Oct 4, 2022
1 parent 7e23946 commit 2920b10
Showing 1 changed file with 40 additions and 39 deletions.
79 changes: 40 additions & 39 deletions tools/eslint-rules/eslint-check.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,53 +12,54 @@ const utils = require('./rules-utils.js');
const msg = 'Please add a skipIfEslintMissing() call to allow this test to ' +
'be skipped when Node.js is built from a source tarball.';

module.exports = function(context) {
const missingCheckNodes = [];
let commonModuleNode = null;
let hasEslintCheck = false;
module.exports = {
meta: {
fixable: 'code',
},
create: function(context) {
const missingCheckNodes = [];
let commonModuleNode = null;
let hasEslintCheck = false;

function testEslintUsage(context, node) {
if (utils.isRequired(node, ['../../tools/node_modules/eslint'])) {
missingCheckNodes.push(node);
}
function testEslintUsage(context, node) {
if (utils.isRequired(node, ['../../tools/node_modules/eslint'])) {
missingCheckNodes.push(node);
}

if (utils.isCommonModule(node)) {
commonModuleNode = node;
if (utils.isCommonModule(node)) {
commonModuleNode = node;
}
}
}

function checkMemberExpression(context, node) {
if (utils.usesCommonProperty(node, ['skipIfEslintMissing'])) {
hasEslintCheck = true;
function checkMemberExpression(context, node) {
if (utils.usesCommonProperty(node, ['skipIfEslintMissing'])) {
hasEslintCheck = true;
}
}
}

function reportIfMissing(context) {
if (!hasEslintCheck) {
missingCheckNodes.forEach((node) => {
context.report({
node,
message: msg,
fix: (fixer) => {
if (commonModuleNode) {
return fixer.insertTextAfter(
commonModuleNode,
'\ncommon.skipIfEslintMissing();'
);
function reportIfMissing(context) {
if (!hasEslintCheck) {
missingCheckNodes.forEach((node) => {
context.report({
node,
message: msg,
fix: (fixer) => {
if (commonModuleNode) {
return fixer.insertTextAfter(
commonModuleNode,
'\ncommon.skipIfEslintMissing();'
);
}
}
}
});
});
});
}
}
}

return {
'CallExpression': (node) => testEslintUsage(context, node),
'MemberExpression': (node) => checkMemberExpression(context, node),
'Program:exit': () => reportIfMissing(context)
};
};

module.exports.meta = {
fixable: 'code'
return {
'CallExpression': (node) => testEslintUsage(context, node),
'MemberExpression': (node) => checkMemberExpression(context, node),
'Program:exit': () => reportIfMissing(context)
};
}
};

0 comments on commit 2920b10

Please sign in to comment.