Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Trott <rtrott@gmail.com>2021-10-10 04:20:06 +0300
committerRich Trott <rtrott@gmail.com>2021-10-12 04:37:28 +0300
commitdd8e219d71e999a66c5fa4e01436c179425a4c8a (patch)
treed35cfdc730644c446ea22d5a0f2d42fbc698363d
parent0a1b3997816988f86720370a02f6251fd92748a8 (diff)
tools: prepare ESLint rules for 8.0.0 requirements
PR-URL: https://github.com/nodejs/node/pull/40394 Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
-rw-r--r--tools/eslint-rules/crypto-check.js167
-rw-r--r--tools/eslint-rules/inspector-check.js79
2 files changed, 124 insertions, 122 deletions
diff --git a/tools/eslint-rules/crypto-check.js b/tools/eslint-rules/crypto-check.js
index 4704b550a36..def002ef4c6 100644
--- a/tools/eslint-rules/crypto-check.js
+++ b/tools/eslint-rules/crypto-check.js
@@ -20,107 +20,108 @@ const cryptoModules = ['crypto', 'http2'];
const requireModules = cryptoModules.concat(['tls', 'https']);
const bindingModules = cryptoModules.concat(['tls_wrap']);
-module.exports = function(context) {
- const missingCheckNodes = [];
- const requireNodes = [];
- let commonModuleNode = null;
- let hasSkipCall = false;
+module.exports = {
+ meta: {
+ fixable: 'code',
+ },
+ create(context) {
+ const missingCheckNodes = [];
+ const requireNodes = [];
+ let commonModuleNode = null;
+ let hasSkipCall = false;
+
+ function testCryptoUsage(node) {
+ if (utils.isRequired(node, requireModules) ||
+ utils.isBinding(node, bindingModules)) {
+ requireNodes.push(node);
+ }
- function testCryptoUsage(node) {
- if (utils.isRequired(node, requireModules) ||
- utils.isBinding(node, bindingModules)) {
- requireNodes.push(node);
+ if (utils.isCommonModule(node)) {
+ commonModuleNode = node;
+ }
}
- if (utils.isCommonModule(node)) {
- commonModuleNode = node;
+ function testIfStatement(node) {
+ if (node.test.argument === undefined) {
+ return;
+ }
+ if (isCryptoCheck(node.test.argument)) {
+ checkCryptoCall(node);
+ }
}
- }
- function testIfStatement(node) {
- if (node.test.argument === undefined) {
- return;
- }
- if (isCryptoCheck(node.test.argument)) {
- checkCryptoCall(node);
+ function isCryptoCheck(node) {
+ return utils.usesCommonProperty(node, ['hasCrypto', 'hasFipsCrypto']);
}
- }
-
- function isCryptoCheck(node) {
- return utils.usesCommonProperty(node, ['hasCrypto', 'hasFipsCrypto']);
- }
- function checkCryptoCall(node) {
- if (utils.inSkipBlock(node)) {
- hasSkipCall = true;
- } else {
- missingCheckNodes.push(node);
+ function checkCryptoCall(node) {
+ if (utils.inSkipBlock(node)) {
+ hasSkipCall = true;
+ } else {
+ missingCheckNodes.push(node);
+ }
}
- }
- function testMemberExpression(node) {
- if (isCryptoCheck(node)) {
- checkCryptoCall(node);
+ function testMemberExpression(node) {
+ if (isCryptoCheck(node)) {
+ checkCryptoCall(node);
+ }
}
- }
-
- function reportIfMissingCheck() {
- if (hasSkipCall) {
- // There is a skip, which is good, but verify that the require() calls
- // in question come after at least one check.
- if (missingCheckNodes.length > 0) {
- requireNodes.forEach((requireNode) => {
- const beforeAllChecks = missingCheckNodes.every((checkNode) => {
- return requireNode.range[0] < checkNode.range[0];
- });
- if (beforeAllChecks) {
- context.report({
- node: requireNode,
- message: msg
+ function reportIfMissingCheck() {
+ if (hasSkipCall) {
+ // There is a skip, which is good, but verify that the require() calls
+ // in question come after at least one check.
+ if (missingCheckNodes.length > 0) {
+ requireNodes.forEach((requireNode) => {
+ const beforeAllChecks = missingCheckNodes.every((checkNode) => {
+ return requireNode.range[0] < checkNode.range[0];
});
- }
- });
+
+ if (beforeAllChecks) {
+ context.report({
+ node: requireNode,
+ message: msg
+ });
+ }
+ });
+ }
+ return;
}
- return;
- }
- if (requireNodes.length > 0) {
- if (missingCheckNodes.length > 0) {
- report(missingCheckNodes);
- } else {
- report(requireNodes);
+ if (requireNodes.length > 0) {
+ if (missingCheckNodes.length > 0) {
+ report(missingCheckNodes);
+ } else {
+ report(requireNodes);
+ }
}
}
- }
- function report(nodes) {
- nodes.forEach((node) => {
- context.report({
- node,
- message: msg,
- fix: (fixer) => {
- if (commonModuleNode) {
- return fixer.insertTextAfter(
- commonModuleNode,
- '\nif (!common.hasCrypto) {' +
- ' common.skip("missing crypto");' +
- '}'
- );
+ function report(nodes) {
+ nodes.forEach((node) => {
+ context.report({
+ node,
+ message: msg,
+ fix: (fixer) => {
+ if (commonModuleNode) {
+ return fixer.insertTextAfter(
+ commonModuleNode,
+ '\nif (!common.hasCrypto) {' +
+ ' common.skip("missing crypto");' +
+ '}'
+ );
+ }
}
- }
+ });
});
- });
- }
-
- return {
- 'CallExpression': (node) => testCryptoUsage(node),
- 'IfStatement:exit': (node) => testIfStatement(node),
- 'MemberExpression:exit': (node) => testMemberExpression(node),
- 'Program:exit': () => reportIfMissingCheck()
- };
-};
+ }
-module.exports.meta = {
- fixable: 'code'
+ return {
+ 'CallExpression': (node) => testCryptoUsage(node),
+ 'IfStatement:exit': (node) => testIfStatement(node),
+ 'MemberExpression:exit': (node) => testMemberExpression(node),
+ 'Program:exit': () => reportIfMissingCheck()
+ };
+ }
};
diff --git a/tools/eslint-rules/inspector-check.js b/tools/eslint-rules/inspector-check.js
index bb5dc27bff5..4cc220e68b7 100644
--- a/tools/eslint-rules/inspector-check.js
+++ b/tools/eslint-rules/inspector-check.js
@@ -13,53 +13,54 @@ const utils = require('./rules-utils.js');
const msg = 'Please add a skipIfInspectorDisabled() call to allow this ' +
'test to be skipped when Node is built \'--without-inspector\'.';
-module.exports = function(context) {
- const missingCheckNodes = [];
- let commonModuleNode = null;
- let hasInspectorCheck = false;
+module.exports = {
+ meta: {
+ fixable: 'code',
+ },
+ create(context) {
+ const missingCheckNodes = [];
+ let commonModuleNode = null;
+ let hasInspectorCheck = false;
- function testInspectorUsage(context, node) {
- if (utils.isRequired(node, ['inspector'])) {
- missingCheckNodes.push(node);
- }
+ function testInspectorUsage(context, node) {
+ if (utils.isRequired(node, ['inspector'])) {
+ missingCheckNodes.push(node);
+ }
- if (utils.isCommonModule(node)) {
- commonModuleNode = node;
+ if (utils.isCommonModule(node)) {
+ commonModuleNode = node;
+ }
}
- }
- function checkMemberExpression(context, node) {
- if (utils.usesCommonProperty(node, ['skipIfInspectorDisabled'])) {
- hasInspectorCheck = true;
+ function checkMemberExpression(context, node) {
+ if (utils.usesCommonProperty(node, ['skipIfInspectorDisabled'])) {
+ hasInspectorCheck = true;
+ }
}
- }
- function reportIfMissing(context) {
- if (!hasInspectorCheck) {
- missingCheckNodes.forEach((node) => {
- context.report({
- node,
- message: msg,
- fix: (fixer) => {
- if (commonModuleNode) {
- return fixer.insertTextAfter(
- commonModuleNode,
- '\ncommon.skipIfInspectorDisabled();'
- );
+ function reportIfMissing(context) {
+ if (!hasInspectorCheck) {
+ missingCheckNodes.forEach((node) => {
+ context.report({
+ node,
+ message: msg,
+ fix: (fixer) => {
+ if (commonModuleNode) {
+ return fixer.insertTextAfter(
+ commonModuleNode,
+ '\ncommon.skipIfInspectorDisabled();'
+ );
+ }
}
- }
+ });
});
- });
+ }
}
- }
- return {
- 'CallExpression': (node) => testInspectorUsage(context, node),
- 'MemberExpression': (node) => checkMemberExpression(context, node),
- 'Program:exit': () => reportIfMissing(context)
- };
-};
-
-module.exports.meta = {
- fixable: 'code'
+ return {
+ 'CallExpression': (node) => testInspectorUsage(context, node),
+ 'MemberExpression': (node) => checkMemberExpression(context, node),
+ 'Program:exit': () => reportIfMissing(context)
+ };
+ }
};