mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	fix CallExpression detection
This commit is contained in:
		
							parent
							
								
									82674d8718
								
							
						
					
					
						commit
						dba3277200
					
				
					 2 changed files with 8 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -40,9 +40,13 @@ function walkDown(locale, path) {
 | 
			
		|||
 * to the MemberExpressions
 | 
			
		||||
 */
 | 
			
		||||
function findCallExpression(node) {
 | 
			
		||||
	if (node.type === 'CallExpression') return node
 | 
			
		||||
	if (node.parent?.type === 'CallExpression') return node.parent;
 | 
			
		||||
	if (node.parent?.type === 'MemberExpression') return findCallExpression(node.parent);
 | 
			
		||||
	if (!node.parent) return null;
 | 
			
		||||
 | 
			
		||||
	// the second half of this guard protects from cases like
 | 
			
		||||
	// `foo(one.two.three)` where the CallExpression is parent of the
 | 
			
		||||
	// MemberExpressions, but via `arguments`, not `callee`
 | 
			
		||||
	if (node.parent.type === 'CallExpression' && node.parent.callee === node) return node.parent;
 | 
			
		||||
	if (node.parent.type === 'MemberExpression') return findCallExpression(node.parent);
 | 
			
		||||
	return null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@ ruleTester.run(
 | 
			
		|||
      {code: 'i18n.tsx.foo.baz(1)', options: [locale] },
 | 
			
		||||
      {code: 'whatever.i18n.ts.blah.blah', options: [locale] },
 | 
			
		||||
      {code: 'whatever.i18n.tsx.does.not.matter', options: [locale] },
 | 
			
		||||
      {code: 'whatever(i18n.ts.foo.bar)', options: [locale] },
 | 
			
		||||
    ],
 | 
			
		||||
    invalid: [
 | 
			
		||||
      {code: 'i18n.ts.not', options: [locale], errors: 1 },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue