11'use strict' ;
22
3- const { getDocsUrl, ALL_QUERIES_METHODS } = require ( '../utils' ) ;
3+ const { findParent , getDocsUrl, ALL_QUERIES_METHODS } = require ( '../utils' ) ;
44
55const ALL_GET_BY_QUERIES = ALL_QUERIES_METHODS . map (
66 queryMethod => `get${ queryMethod } `
77) ;
88
99const findCallExpressionParent = node =>
10- node . type === 'CallExpression' ? node : findCallExpressionParent ( node . parent ) ;
10+ findParent ( node , node => node . type === 'CallExpression' ) ;
1111
1212const isValidQuery = ( node , customQueryNames = [ ] ) =>
1313 ALL_GET_BY_QUERIES . includes ( node . name ) ||
@@ -19,11 +19,17 @@ const isDirectlyCalledByFunction = node =>
1919const isReturnedByArrowFunctionExpression = node =>
2020 node . parent . type === 'ArrowFunctionExpression' ;
2121
22- const isDeclared = node => node . parent . type === 'VariableDeclarator' ;
22+ const isDeclared = node =>
23+ ! ! findParent ( node , node => node . type === 'VariableDeclarator' ) ;
2324
2425const isReturnedByReturnStatement = node =>
2526 node . parent . type === 'ReturnStatement' ;
2627
28+ const isInDestructuringStatement = node =>
29+ ( node . parent . type === 'Property' &&
30+ node . parent . parent . type === 'ObjectPattern' ) ||
31+ node . parent . type === 'ArrayPattern' ;
32+
2733module . exports = {
2834 meta : {
2935 type : 'suggestion' ,
@@ -63,6 +69,7 @@ module.exports = {
6369
6470 if (
6571 isValidQuery ( node , customQueryNames ) &&
72+ ! isInDestructuringStatement ( node ) &&
6673 ! isDirectlyCalledByFunction ( callExpressionNode ) &&
6774 ! isReturnedByArrowFunctionExpression ( callExpressionNode ) &&
6875 ! isDeclared ( callExpressionNode ) &&
0 commit comments