From 87534d6c254f0ecb14ed460e831b7fee8fc30a31 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sat, 1 Apr 2017 23:06:31 -0700 Subject: [PATCH] tools: replace custom ESLint timers rule ESLint 3.19.0 allows the specification of selectors that represent disallowed syntax. Replace our custom rule for timer arguments with a pair of `no-restricted-syntax` option objects. PR-URL: https://github.com/nodejs/node/pull/12504 Reviewed-By: Myles Borins --- .eslintrc.yaml | 8 +++++++- tools/eslint-rules/timer-arguments.js | 25 ------------------------- 2 files changed, 7 insertions(+), 26 deletions(-) delete mode 100644 tools/eslint-rules/timer-arguments.js diff --git a/.eslintrc.yaml b/.eslintrc.yaml index fbd024b7ea16db..299829a1499682 100644 --- a/.eslintrc.yaml +++ b/.eslintrc.yaml @@ -100,6 +100,13 @@ rules: new-parens: 2 no-mixed-spaces-and-tabs: 2 no-multiple-empty-lines: [2, {max: 2, maxEOF: 0, maxBOF: 0}] + no-restricted-syntax: [2, { + selector: "CallExpression[callee.name='setTimeout'][arguments.length<2]", + message: "setTimeout() must be invoked with at least two arguments." + }, { + selector: "CallExpression[callee.name='setInterval'][arguments.length<2]", + message: "setInterval() must be invoked with at least 2 arguments" + }] no-tabs: 2 no-trailing-spaces: 2 operator-linebreak: [2, after, {overrides: {'?': ignore, ':': ignore}}] @@ -132,7 +139,6 @@ rules: assert-fail-single-argument: 2 assert-throws-arguments: [2, { requireTwo: false }] new-with-error: [2, Error, RangeError, TypeError, SyntaxError, ReferenceError] - timer-arguments: 2 # Global scoped method and vars globals: diff --git a/tools/eslint-rules/timer-arguments.js b/tools/eslint-rules/timer-arguments.js deleted file mode 100644 index 4dd7816ff82ff2..00000000000000 --- a/tools/eslint-rules/timer-arguments.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * @fileoverview Require at least two arguments when calling setTimeout() or - * setInterval(). - * @author Rich Trott - */ -'use strict'; - -//------------------------------------------------------------------------------ -// Rule Definition -//------------------------------------------------------------------------------ - -function isTimer(name) { - return ['setTimeout', 'setInterval'].includes(name); -} - -module.exports = function(context) { - return { - 'CallExpression': function(node) { - const name = node.callee.name; - if (isTimer(name) && node.arguments.length < 2) { - context.report(node, `${name} must have at least 2 arguments`); - } - } - }; -};