@putout/plugin-parens 
🐊Putout plugin adds ability to add missing parens. Check out in 🐊Putout Editor.
Install
npm i @putout/plugin-parens
Rules
- ✅ add-missing-for-await;
- ✅ add-missing-for-template;
- ✅ add-missing-for-assign;
- ✅ remove-useless-for-await;
- ✅ remove-useless-for-params;
Config
Short:
{
"rules": {
"parens/add-missing": "on",
"parens/remove-useless": "on"
}
}
Full:
{
"rules": {
"parens/add-missing-for-await": "on",
"parens/add-missing-for-template": "on",
"parens/add-missing-for-assign": "on",
"parens/remove-useless-for-await": "on",
"parens/remove-useless-for-params": "on"
}
}
add-missing-for-assign
The JavaScript exception "invalid assignment left-hand side" occurs when there was an unexpected assignment somewhere. It may be triggered when a single
=
sign was used instead of==
or===
.(c) MDN
To disable use:
{
"rules": {
"parens/add-missing-for-assign": "off"
}
}
-a && b = a;
+a && (b = a);
add-missing-for-await
❌ Example of incorrect code
await asyncFn().filter(Boolean);
✅ Example of correct code
(await asyncFn()).filter(Boolean);
add-missing-for-template
The JavaScript exception "tagged template cannot be used with optional chain" occurs when the tag expression of a tagged template literal is an optional chain, or if there's an optional chain between the tag and the template.
(c) MDN
Checkout in 🐊Putout Editor.
{
"rules": {
"parens/add-missing-for-template": "off"
}
}
❌ Example of incorrect code
getConsoleLog?.()``;
String?.raw``;
String?.raw!``;
✅ Example of correct code
(getConsoleLog?.())``;
(String?.raw)``;
(String?.raw)!``;
remove-useless-for-await
Checkout in 🐊Putout Editor.
❌ Example of incorrect code
const s = (await m());
✅ Example of correct code
const s = await m();
remove-useless-for-params
Uncaught SyntaxError: Invalid destructuring assignment target
(c) Chrome
Checkout in 🐊Putout Editor.
❌ Example of incorrect code
const a = ((b)) => c;
✅ Example of correct code
const a = (b) => c;
License
MIT