1234567891011121314151617181920212223242526272829303132 |
- 'use strict';
- const {isCommaToken} = require('@eslint-community/eslint-utils');
- const {getParentheses} = require('../utils/parentheses.js');
- function removeArgument(fixer, node, sourceCode) {
- const callExpression = node.parent;
- const index = callExpression.arguments.indexOf(node);
- const parentheses = getParentheses(node, sourceCode);
- const firstToken = parentheses[0] || node;
- const lastToken = parentheses[parentheses.length - 1] || node;
- let [start] = firstToken.range;
- let [, end] = lastToken.range;
- if (index !== 0) {
- start = sourceCode.getTokenBefore(firstToken).range[0];
- }
- // If the removed argument is the only argument, the trailing comma must be removed too
- /* c8 ignore start */
- if (callExpression.arguments.length === 1) {
- const tokenAfter = sourceCode.getTokenBefore(lastToken);
- if (isCommaToken(tokenAfter)) {
- end = tokenAfter[1];
- }
- }
- /* c8 ignore end */
- return fixer.replaceTextRange([start, end], '');
- }
- module.exports = removeArgument;
|