const observerMap = { | |
scroll: 'IntersectionObserver', | |
resize: 'ResizeObserver' | |
} | |
module.exports = { | |
meta: { | |
docs: {}, | |
fixable: 'code' | |
}, | |
create(context) { | |
return { | |
['CallExpression[callee.property.name="addEventListener"]']: function(node) { | |
const [name] = node.arguments | |
if (name.type !== 'Literal') return | |
if (!(name.value in observerMap)) return | |
context.report({ | |
node, | |
message: `Avoid using "${name.value}" event listener. Consider using ${observerMap[name.value]} instead` | |
}) | |
} | |
} | |
} | |
} |