mirror of https://github.com/lukechilds/node.git
Browse Source
Add a custom ESLint rule to require that setTimeout() and setInterval() get called with at least two arguments. This prevents omitting the duration or interval. PR-URL: https://github.com/nodejs/node/pull/9472 Reviewed-By: Teddy Katz <teddy.katz@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>v6
2 changed files with 26 additions and 0 deletions
@ -0,0 +1,25 @@ |
|||
/** |
|||
* @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`); |
|||
} |
|||
} |
|||
}; |
|||
}; |
Loading…
Reference in new issue