lukastaegert/eslint-plugin-tree-shaking

Unsupported logical operator ??

blutorange opened this issue · 0 comments

?? is a new operator not supported by this plugin yet.

patch-package patch to fix this:

eslint-plugin-tree-shaking+1.8.0.patch

diff --git a/

node_modules/eslint-plugin-tree-shaking/lib/rules/no-side-effects-in-initialization.js b/node_modules/eslint-plugin-tree-shaking/lib/rules/no-side-effects-in-initialization.js
index 16c42ca..10e4728 100644
--- a/node_modules/eslint-plugin-tree-shaking/lib/rules/no-side-effects-in-initialization.js
+++ b/node_modules/eslint-plugin-tree-shaking/lib/rules/no-side-effects-in-initialization.js
@@ -150,6 +150,17 @@ const reportSideEffectsInProgram = (context, programNode) => {
         return leftValue
       }
       return getAndReportRight()
+    },
+    '??': (getAndReportLeft, getAndReportRight) => {
+      const leftValue = getAndReportLeft()
+      if (!leftValue.hasValue) {
+        getAndReportRight()
+        return leftValue
+      }
+      if (leftValue.value) {
+        return leftValue
+      }
+      return getAndReportRight()
     }
   }