mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
[be][babel] Move directive checking to separate function
This commit is contained in:
@@ -19,6 +19,15 @@ type BabelPluginPass = {
|
||||
opts: PluginOptions;
|
||||
};
|
||||
|
||||
function hasUseForgetDirective(directives: t.Directive[]): boolean {
|
||||
for (const directive of directives) {
|
||||
if (directive.value.value === "use forget") {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* The React Forget Babel Plugin
|
||||
* @param {*} _babel
|
||||
@@ -33,17 +42,11 @@ export default function ReactForgetBabelPlugin(
|
||||
pass: BabelPluginPass
|
||||
) {
|
||||
if (pass.opts.enableOnlyOnUseForgetDirective) {
|
||||
let hasUseForgetDirective = false;
|
||||
for (const directive of fn.node.body.directives) {
|
||||
if (directive.value.value === "use forget") {
|
||||
hasUseForgetDirective = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!hasUseForgetDirective) {
|
||||
if (!hasUseForgetDirective(fn.node.body.directives)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (fn.scope.getProgramParent() !== fn.scope.parent) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user