UNPKG

929 BJavaScriptView Raw
1'use strict';
2const getDocumentationUrl = require('./utils/get-documentation-url');
3const methodSelector = require('./utils/method-selector');
4
5const methods = new Map([
6 ['trimLeft', 'trimStart'],
7 ['trimRight', 'trimEnd']
8]);
9
10const selector = [
11 methodSelector({
12 names: ['trimLeft', 'trimRight'],
13 length: 0
14 }),
15 '> MemberExpression.callee',
16 '> Identifier.property'
17].join(' ');
18
19const messages = {};
20for (const [method, replacement] of methods.entries()) {
21 messages[method] = `Prefer \`String#${replacement}()\` over \`String#${method}()\`.`;
22}
23
24const create = context => {
25 return {
26 [selector](node) {
27 const method = node.name;
28 context.report({
29 node,
30 messageId: method,
31 fix: fixer => fixer.replaceText(node, methods.get(method))
32 });
33 }
34 };
35};
36
37module.exports = {
38 create,
39 meta: {
40 type: 'suggestion',
41 docs: {
42 url: getDocumentationUrl(__filename)
43 },
44 fixable: 'code',
45 messages
46 }
47};