@samitouri / QOS-React-2 / commits / 637c2e68f1

[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 }