webhook/node_modules/eslint-plugin-github/lib/rules/async-currenttarget.js

25 lines
568 B
JavaScript
Raw Normal View History

module.exports = {
meta: {
docs: {},
schema: []
},
create(context) {
const scopeDidWait = new WeakSet()
return {
AwaitExpression() {
scopeDidWait.add(context.getScope(), true)
},
MemberExpression(node) {
if (node.property && node.property.name === 'currentTarget') {
const scope = context.getScope()
if (scope.block.async && scopeDidWait.has(scope)) {
context.report(node, 'event.currentTarget inside an async function is error prone')
}
}
}
}
}
}