mirror of
https://github.com/lingble/twenty.git
synced 2025-10-29 11:52:28 +00:00
Fix explicit boolean predicates rule not working with boolean constants (#5009)
### Description Fix explicit boolean predicates rule not working with boolean constants ### Refs #4881 ### Demo Fixes #4881 Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com> Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Matheus <matheus_benini@hotmail.com>
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
import { ESLintUtils, TSESTree } from '@typescript-eslint/experimental-utils';
|
||||
import ts from 'typescript';
|
||||
|
||||
export const RULE_NAME = 'explicit-boolean-predicates-in-if';
|
||||
|
||||
const isBooleanType = (type: ts.Type) => {
|
||||
// check if boolean flag(s) is set on the type (e.g. boolean, true, false, etc.)
|
||||
return type && (type.flags & ts.TypeFlags.BooleanLike) !== 0;
|
||||
};
|
||||
|
||||
export const rule = ESLintUtils.RuleCreator(() => __filename)({
|
||||
name: RULE_NAME,
|
||||
meta: {
|
||||
@@ -27,9 +33,8 @@ export const rule = ESLintUtils.RuleCreator(() => __filename)({
|
||||
const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node.test);
|
||||
const type = typeChecker.getTypeAtLocation(tsNode);
|
||||
|
||||
if (typeChecker.typeToString(type) !== 'boolean') {
|
||||
if (!isBooleanType(type)) {
|
||||
const { test } = node;
|
||||
|
||||
context.report({
|
||||
node: test,
|
||||
messageId: 'nonExplicitPredicate',
|
||||
|
||||
Reference in New Issue
Block a user