47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
"use strict";
|
|
|
|
function argumentsIsUndefinedString(argumentsArray) {
|
|
return (
|
|
argumentsArray.length === 1 &&
|
|
argumentsArray[0].type === "Literal" &&
|
|
argumentsArray[0].value === "undefined"
|
|
);
|
|
}
|
|
|
|
module.exports = {
|
|
meta: {
|
|
schema: [],
|
|
},
|
|
create: function(context) {
|
|
if (context.getFilename().indexOf("packages/babel-plugin-") === -1) {
|
|
return {};
|
|
}
|
|
|
|
return {
|
|
CallExpression: function(node) {
|
|
const callee = node.callee;
|
|
|
|
if (
|
|
callee.type === "MemberExpression" &&
|
|
argumentsIsUndefinedString(node.arguments)
|
|
) {
|
|
const object = callee.object,
|
|
property = callee.property;
|
|
|
|
if (
|
|
object.type === "Identifier" &&
|
|
object.name === "t" &&
|
|
property.type === "Identifier" &&
|
|
property.name === "identifier"
|
|
) {
|
|
context.report(
|
|
node,
|
|
"Use path.scope.buildUndefinedNode() to create an undefined identifier directly."
|
|
);
|
|
}
|
|
}
|
|
},
|
|
};
|
|
},
|
|
};
|