UNPKG

898 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 = methodSelector({
11 names: ['trimLeft', 'trimRight'],
12 length: 0
13});
14
15const messages = {};
16for (const [method, replacement] of methods.entries()) {
17 messages[method] = `Prefer \`String#${method}()\` over \`String#${replacement}()\`.`;
18}
19
20const create = context => {
21 return {
22 [selector](node) {
23 const {property} = node.callee;
24 const method = property.name;
25 context.report({
26 node,
27 messageId: method,
28 fix: fixer => fixer.replaceText(property, methods.get(method))
29 });
30 }
31 };
32};
33
34module.exports = {
35 create,
36 meta: {
37 type: 'suggestion',
38 docs: {
39 url: getDocumentationUrl(__filename)
40 },
41 fixable: 'code',
42 messages
43 }
44};