1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 'use strict';
- const isValueNotUsable = require('./utils/is-value-not-usable.js');
- const {methodCallSelector, notDomNodeSelector} = require('./selectors/index.js');
- const MESSAGE_ID = 'prefer-dom-node-append';
- const messages = {
- [MESSAGE_ID]: 'Prefer `Node#append()` over `Node#appendChild()`.',
- };
- const selector = [
- methodCallSelector({
- method: 'appendChild',
- argumentsLength: 1,
- }),
- notDomNodeSelector('callee.object'),
- notDomNodeSelector('arguments.0'),
- ].join('');
- /** @param {import('eslint').Rule.RuleContext} context */
- const create = () => ({
- [selector](node) {
- const fix = isValueNotUsable(node)
- ? fixer => fixer.replaceText(node.callee.property, 'append')
- : undefined;
- return {
- node,
- messageId: MESSAGE_ID,
- fix,
- };
- },
- });
- /** @type {import('eslint').Rule.RuleModule} */
- module.exports = {
- create,
- meta: {
- type: 'suggestion',
- docs: {
- description: 'Prefer `Node#append()` over `Node#appendChild()`.',
- },
- fixable: 'code',
- messages,
- },
- };
|