[be][babel] Move directive checking to separate function
Sathya Gunasekaran committed
Mar 6, 2023 at 19:53 UTC
637c2e68f1d6580dea84dd1b30284e6797bd6db2
1 file changed
+11
-8
compiler/forget/src/Babel/BabelPlugin.ts
+11
-8
@@ -19,6 +19,15 @@ type BabelPluginPass = {
19
opts: PluginOptions;
20
};
21
22
+function hasUseForgetDirective(directives: t.Directive[]): boolean {
23
+ for (const directive of directives) {
24
+ if (directive.value.value === "use forget") {
25
+ return true;
26
+ }
27
+ }
28
+ return false;
29
+}
30
+
31
/**
32
* The React Forget Babel Plugin
33
* @param {*} _babel
@@ -33,17 +42,11 @@ export default function ReactForgetBabelPlugin(
42
pass: BabelPluginPass
43
) {
44
if (pass.opts.enableOnlyOnUseForgetDirective) {
36
- let hasUseForgetDirective = false;
37
- for (const directive of fn.node.body.directives) {
38
- if (directive.value.value === "use forget") {
39
- hasUseForgetDirective = true;
40
- break;
41
- }
42
- }
43
- if (!hasUseForgetDirective) {
45
+ if (!hasUseForgetDirective(fn.node.body.directives)) {
46
return;
47
}
48
}
49
+
50
if (fn.scope.getProgramParent() !== fn.scope.parent) {
51
return;
52
}