From cb3b14671c433624898f11923c2c8e6c22b106a7 Mon Sep 17 00:00:00 2001 From: coderiaser Date: Wed, 26 Jun 2024 11:46:31 +0300 Subject: [PATCH] feature: @putout/plugin-remove-unused-expressions: use client: exclude (#211) --- packages/plugin-remove-unused-expressions/README.md | 2 +- .../lib/remove-unused-expressions.js | 3 +++ .../test/fixture/use-client.js | 1 + .../test/remove-unused-expressions.js | 5 +++++ 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 packages/plugin-remove-unused-expressions/test/fixture/use-client.js diff --git a/packages/plugin-remove-unused-expressions/README.md b/packages/plugin-remove-unused-expressions/README.md index 7153896481..3081c5642c 100644 --- a/packages/plugin-remove-unused-expressions/README.md +++ b/packages/plugin-remove-unused-expressions/README.md @@ -3,7 +3,7 @@ [NPMIMGURL]: https://img.shields.io/npm/v/@putout/plugin-remove-unused-expressions.svg?style=flat&longCache=true [NPMURL]: https://npmjs.org/package/@putout/plugin-remove-unused-expressions"npm" -🐊[**Putout**](https://github.com/coderaiser/putout) plugin adds ability to find and remove `unused expressions`. +🐊[**Putout**](https://github.com/coderaiser/putout) plugin adds ability to find and remove `unused expressions`, excluding directives: [`use strict`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode) and [`use client`](https://react.dev/reference/rsc/use-client). ## Install diff --git a/packages/plugin-remove-unused-expressions/lib/remove-unused-expressions.js b/packages/plugin-remove-unused-expressions/lib/remove-unused-expressions.js index b2852f8aca..514e33b1f5 100644 --- a/packages/plugin-remove-unused-expressions/lib/remove-unused-expressions.js +++ b/packages/plugin-remove-unused-expressions/lib/remove-unused-expressions.js @@ -14,6 +14,9 @@ module.exports.traverse = ({push}) => ({ if (path.node.value === 'use strict') return; + if (path.node.value === 'use client') + return; + push(path.parentPath); }, ExpressionStatement(path) { diff --git a/packages/plugin-remove-unused-expressions/test/fixture/use-client.js b/packages/plugin-remove-unused-expressions/test/fixture/use-client.js new file mode 100644 index 0000000000..ef4af0a0c1 --- /dev/null +++ b/packages/plugin-remove-unused-expressions/test/fixture/use-client.js @@ -0,0 +1 @@ +'use client'; diff --git a/packages/plugin-remove-unused-expressions/test/remove-unused-expressions.js b/packages/plugin-remove-unused-expressions/test/remove-unused-expressions.js index d8ca203c95..84b7e69ed3 100644 --- a/packages/plugin-remove-unused-expressions/test/remove-unused-expressions.js +++ b/packages/plugin-remove-unused-expressions/test/remove-unused-expressions.js @@ -73,3 +73,8 @@ test('remove unused expression: no report: iife', (t) => { t.noReport('iife'); t.end(); }); + +test('remove unused expression: no report: use-client', (t) => { + t.noReport('use-client'); + t.end(); +});