line_push/node_modules/eslint-plugin-unicorn/rules/prefer-trim-start-end.js
2022-07-21 03:28:35 +00:00

45 lines
898 B
JavaScript

'use strict';
const getDocumentationUrl = require('./utils/get-documentation-url');
const methodSelector = require('./utils/method-selector');
const methods = new Map([
['trimLeft', 'trimStart'],
['trimRight', 'trimEnd']
]);
const selector = methodSelector({
names: ['trimLeft', 'trimRight'],
length: 0
});
const messages = {};
for (const [method, replacement] of methods.entries()) {
messages[method] = `Prefer \`String#${method}()\` over \`String#${replacement}()\`.`;
}
const create = context => {
return {
[selector](node) {
const {property} = node.callee;
const method = property.name;
context.report({
node,
messageId: method,
fix: fixer => fixer.replaceText(property, methods.get(method))
});
}
};
};
module.exports = {
create,
meta: {
type: 'suggestion',
docs: {
url: getDocumentationUrl(__filename)
},
fixable: 'code',
messages
}
};