eslint-plugin-unicorn
Version:
Various awesome ESLint rules
45 lines (39 loc) • 906 B
JavaScript
;
const {methodCallSelector} = require('./selectors/index.js');
const MESSAGE_ID = 'prefer-string-trim-start-end';
const messages = {
[MESSAGE_ID]: 'Prefer `String#{{replacement}}()` over `String#{{method}}()`.'
};
const selector = [
methodCallSelector({
names: ['trimLeft', 'trimRight'],
length: 0
}),
' > .callee',
' > .property'
].join(' ');
const create = () => {
return {
[selector](node) {
const method = node.name;
const replacement = method === 'trimLeft' ? 'trimStart' : 'trimEnd';
return {
node,
messageId: MESSAGE_ID,
data: {method, replacement},
fix: fixer => fixer.replaceText(node, replacement)
};
}
};
};
module.exports = {
create,
meta: {
type: 'suggestion',
docs: {
description: 'Prefer `String#trimStart()` / `String#trimEnd()` over `String#trimLeft()` / `String#trimRight()`.'
},
fixable: 'code',
messages
}
};