UNPKG

891 BJavaScriptView Raw
1'use strict';
2const getDocumentationUrl = require('./utils/get-documentation-url');
3const isValueNotUsable = require('./utils/is-value-not-usable');
4const methodSelector = require('./utils/method-selector');
5const {notDomNodeSelector} = require('./utils/not-dom-node');
6
7const message = 'Prefer `Node#append()` over `Node#appendChild()`.';
8const selector = [
9 methodSelector({
10 name: 'appendChild',
11 length: 1
12 }),
13 notDomNodeSelector('callee.object'),
14 notDomNodeSelector('arguments.0')
15].join('');
16
17const create = context => {
18 return {
19 [selector](node) {
20 const fix = isValueNotUsable(node) ?
21 fixer => fixer.replaceText(node.callee.property, 'append') :
22 undefined;
23
24 context.report({
25 node,
26 message,
27 fix
28 });
29 }
30 };
31};
32
33module.exports = {
34 create,
35 meta: {
36 type: 'suggestion',
37 docs: {
38 url: getDocumentationUrl(__filename)
39 },
40 fixable: 'code'
41 }
42};