eslint-plugin-putout
Version:
ESLint plugin for 🐊Putout
29 lines (19 loc) • 644 B
JavaScript
;
const {types} = require('putout');
const {isTSTypeAliasDeclaration} = types;
module.exports.category = 'typescript';
module.exports.report = () => 'Add newlines between types in union';
const regExp = /[^\n]\|\s[A-Za-z]/;
module.exports.filter = ({text, node}) => {
if (!isTSTypeAliasDeclaration(node.parent))
return false;
if (text.includes('\n'))
return false;
if (node.types.length <= 3)
return false;
return regExp.test(text);
};
module.exports.fix = ({text}) => '\n | ' + text.replace(/\s\|/g, '\n |');
module.exports.include = () => [
'TSUnionType',
];