webhook/node_modules/eslint-plugin-github/lib/rules/async-preventdefault.js
2020-08-26 09:57:08 +10:00

24 lines
584 B
JavaScript

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