mirror of
https://github.com/nodejs/node.git
synced 2025-05-14 23:19:09 +00:00

This is required because we need to add the babel-eslint dependency and it has to be able to resolve "eslint". babel-eslint is required to support future ES features such as async iterators and import.meta. Refs: https://github.com/nodejs/node/pull/17755 PR-URL: https://github.com/nodejs/node/pull/17820 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
/**
|
||
* @fileoverview Rule to flag comparisons to null without a type-checking
|
||
* operator.
|
||
* @author Ian Christian Myers
|
||
*/
|
||
|
||
"use strict";
|
||
|
||
//------------------------------------------------------------------------------
|
||
// Rule Definition
|
||
//------------------------------------------------------------------------------
|
||
|
||
module.exports = {
|
||
meta: {
|
||
docs: {
|
||
description: "disallow `null` comparisons without type-checking operators",
|
||
category: "Best Practices",
|
||
recommended: false
|
||
},
|
||
|
||
schema: []
|
||
},
|
||
|
||
create(context) {
|
||
|
||
return {
|
||
|
||
BinaryExpression(node) {
|
||
const badOperator = node.operator === "==" || node.operator === "!=";
|
||
|
||
if (node.right.type === "Literal" && node.right.raw === "null" && badOperator ||
|
||
node.left.type === "Literal" && node.left.raw === "null" && badOperator) {
|
||
context.report({ node, message: "Use ‘===’ to compare with ‘null’." });
|
||
}
|
||
}
|
||
};
|
||
|
||
}
|
||
};
|