1
1
'use strict' ;
2
2
3
- const { getDocsUrl, ALL_QUERIES_METHODS } = require ( '../utils' ) ;
3
+ const { findParent , getDocsUrl, ALL_QUERIES_METHODS } = require ( '../utils' ) ;
4
4
5
5
const ALL_GET_BY_QUERIES = ALL_QUERIES_METHODS . map (
6
6
queryMethod => `get${ queryMethod } `
7
7
) ;
8
8
9
9
const findCallExpressionParent = node =>
10
- node . type === 'CallExpression' ? node : findCallExpressionParent ( node . parent ) ;
10
+ findParent ( node , node => node . type === 'CallExpression' ) ;
11
11
12
12
const isValidQuery = ( node , customQueryNames = [ ] ) =>
13
13
ALL_GET_BY_QUERIES . includes ( node . name ) ||
@@ -19,11 +19,17 @@ const isDirectlyCalledByFunction = node =>
19
19
const isReturnedByArrowFunctionExpression = node =>
20
20
node . parent . type === 'ArrowFunctionExpression' ;
21
21
22
- const isDeclared = node => node . parent . type === 'VariableDeclarator' ;
22
+ const isDeclared = node =>
23
+ ! ! findParent ( node , node => node . type === 'VariableDeclarator' ) ;
23
24
24
25
const isReturnedByReturnStatement = node =>
25
26
node . parent . type === 'ReturnStatement' ;
26
27
28
+ const isInDestructuringStatement = node =>
29
+ ( node . parent . type === 'Property' &&
30
+ node . parent . parent . type === 'ObjectPattern' ) ||
31
+ node . parent . type === 'ArrayPattern' ;
32
+
27
33
module . exports = {
28
34
meta : {
29
35
type : 'suggestion' ,
@@ -63,6 +69,7 @@ module.exports = {
63
69
64
70
if (
65
71
isValidQuery ( node , customQueryNames ) &&
72
+ ! isInDestructuringStatement ( node ) &&
66
73
! isDirectlyCalledByFunction ( callExpressionNode ) &&
67
74
! isReturnedByArrowFunctionExpression ( callExpressionNode ) &&
68
75
! isDeclared ( callExpressionNode ) &&
0 commit comments