UNPKG

eslint-plugin-putout

Version:
51 lines (36 loc) 942 B
import {types} from 'putout'; const { isBlockStatement, isIfStatement, isExpressionStatement, } = types; const reg = /\)\n(\s+)?\n/; export const report = () => `Remove useless newline`; export const fix = ({text}) => { return text.replace(reg, ')\n'); }; export const include = () => [ 'IfStatement', 'ForOfStatement', 'ForStatement', 'WhileStatement', ]; export const filter = ({text, node}) => { if (isIf(text, node)) return true; return isBody(text, node); }; function isIf(text, node) { if (!isIfStatement(node)) return false; const {consequent, alternate} = node; if (!isExpressionStatement(alternate) && !isExpressionStatement(consequent)) return false; return reg.test(text); } function isBody(text, node) { const {body} = node; if (isBlockStatement(body)) return false; return reg.test(text); }