mirror of
				https://github.com/lingble/twenty.git
				synced 2025-10-31 12:47:58 +00:00 
			
		
		
		
	![gitstart-app[bot]](/assets/img/avatar_default.png) 17511be0cf
			
		
	
	17511be0cf
	
	
	
		
			
			* ESLint rule: only take explicit boolean predicates in if statements Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Merge main Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix frontend linter errors Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix jest Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Refactor according to review Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Refactor according to review Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix lint on new code Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> --------- Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com> Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { ESLintUtils, TSESTree } from '@typescript-eslint/experimental-utils';
 | |
| 
 | |
| export const RULE_NAME = 'explicit-boolean-predicates-in-if';
 | |
| 
 | |
| export const rule = ESLintUtils.RuleCreator(() => __filename)({
 | |
|   name: RULE_NAME,
 | |
|   meta: {
 | |
|     type: 'suggestion',
 | |
|     docs: {
 | |
|       description: 'Enforce explicit boolean predicates in if statements',
 | |
|       recommended: 'warn',
 | |
|     },
 | |
|     fixable: 'code',
 | |
|     schema: [],
 | |
|     messages: {
 | |
|       nonExplicitPredicate:
 | |
|         'Use an explicit boolean predicate in if statements.',
 | |
|     },
 | |
|   },
 | |
|   defaultOptions: [],
 | |
|   create: (context) => {
 | |
|     const parserServices = ESLintUtils.getParserServices(context);
 | |
|     const typeChecker = parserServices.program.getTypeChecker();
 | |
| 
 | |
|     return {
 | |
|       IfStatement: (node: TSESTree.IfStatement) => {
 | |
|         const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node.test);
 | |
|         const type = typeChecker.getTypeAtLocation(tsNode);
 | |
| 
 | |
|         if (typeChecker.typeToString(type) !== 'boolean') {
 | |
|           const { test } = node;
 | |
| 
 | |
|           context.report({
 | |
|             node: test,
 | |
|             messageId: 'nonExplicitPredicate',
 | |
|           });
 | |
|         }
 | |
|       },
 | |
|     };
 | |
|   },
 | |
| });
 | |
| 
 | |
| export default rule;
 |