Nicolò Ribaudo 8c7d4b55c9
Add plugins name (#8769)
* Add plugins name

* Add missing names found by the plugin

* Add eslint plugin
2018-11-18 23:02:58 +01:00

34 lines
889 B
JavaScript

import { declare } from "@babel/helper-plugin-utils";
import { types as t } from "@babel/core";
export default declare(api => {
api.assertVersion(7);
return {
name: "transform-instanceof",
visitor: {
BinaryExpression(path) {
const { node } = path;
if (node.operator === "instanceof") {
const helper = this.addHelper("instanceof");
const isUnderHelper = path.findParent(path => {
return (
(path.isVariableDeclarator() && path.node.id === helper) ||
(path.isFunctionDeclaration() &&
path.node.id &&
path.node.id.name === helper.name)
);
});
if (isUnderHelper) {
return;
} else {
path.replaceWith(t.callExpression(helper, [node.left, node.right]));
}
}
},
},
};
});