chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
const hooksWithDependencyArrays = new Set(['useCallback', 'useEffect', 'useMemo']);
|
||||
|
||||
module.exports = {
|
||||
meta: {
|
||||
type: 'problem',
|
||||
messages: {
|
||||
missingDependencyArray:
|
||||
'Did you mean to call {{ functionName }} without a dependency array? This is an advanced way to use this hook, please check code carefully.',
|
||||
},
|
||||
},
|
||||
create(context) {
|
||||
return {
|
||||
CallExpression(node) {
|
||||
let functionName;
|
||||
|
||||
switch (node.callee.type) {
|
||||
case 'Identifier': {
|
||||
// This is the "useEffect" case
|
||||
functionName = node.callee.name;
|
||||
break;
|
||||
}
|
||||
case 'MemberExpression': {
|
||||
// This is the "React.useEffect" case
|
||||
functionName = node.callee.property.name;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Check if the function is a hook and only has a function and no dep array
|
||||
if (functionName !== undefined && hooksWithDependencyArrays.has(functionName) && node.arguments.length === 1) {
|
||||
context.report({
|
||||
data: { functionName },
|
||||
node,
|
||||
messageId: 'missingDependencyArray',
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user