ESLint's no-restricted-syntax rule
ESLint's no-restricted-syntax uses selectors to query an AST and this can be used to restrict certain syntax from being used.
Use a AST Explorer to view the resulting AST of the JavaScript code you want to query.
This rule disallows the use of MyLibrary.myFunction():
{
"rules": {
"no-restricted-syntax": [
"error",
{
"selector": "MemberExpression[property.name='myFunction'][object.name='MyLibrary']",
"message": "'MyLibrary.myFunction()' is depreciated. Please use MyOtherLibrary.myNewFunction()"
}
]
}
}
This rule disallows the use of MyLibrary().myFunction():
{
"rules": {
"no-restricted-syntax": [
"error",
{
"selector": "[property.name='myFunction'] CallExpression[callee.name='MyLibrary']",
"message": "'MyLibrary().myFunction()' is depreciated. Please use MyOtherLibrary.myNewFunction()"
}
]
}
}