📄 no-array-constructor.ts
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 2 |
📦 Imports | 5 |
📊 Variables & Constants | 2 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/eslint-plugin/src/rules/no-array-constructor.ts
📦 Imports¶
Name | Source |
---|---|
TSESTree |
@typescript-eslint/utils |
AST_NODE_TYPES |
@typescript-eslint/utils |
isOpeningParenToken |
@typescript-eslint/utils/ast-utils |
isClosingParenToken |
@typescript-eslint/utils/ast-utils |
createRule |
../util |
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
sourceCode |
any |
const | context.sourceCode |
✗ |
firstToken |
TSESTree.Expression | TSESTree.Token | null |
let/var | node.callee |
✗ |
Functions¶
getArgumentsText(node: TSESTree.CallExpression | TSESTree.NewExpression): any
¶
Code
function getArgumentsText(
node: TSESTree.CallExpression | TSESTree.NewExpression,
) {
const lastToken = sourceCode.getLastToken(node);
if (lastToken == null || !isClosingParenToken(lastToken)) {
return '';
}
let firstToken: TSESTree.Expression | TSESTree.Token | null = node.callee;
do {
firstToken = sourceCode.getTokenAfter(firstToken);
if (!firstToken || firstToken === lastToken) {
return '';
}
} while (!isOpeningParenToken(firstToken));
return sourceCode.text.slice(firstToken.range[1], lastToken.range[0]);
}
- Parameters:
node: TSESTree.CallExpression | TSESTree.NewExpression
- Return Type:
any
- Calls:
sourceCode.getLastToken
isClosingParenToken (from @typescript-eslint/utils/ast-utils)
sourceCode.getTokenAfter
isOpeningParenToken (from @typescript-eslint/utils/ast-utils)
sourceCode.text.slice
check(node: TSESTree.CallExpression | TSESTree.NewExpression): void
¶
Code
function check(
node: TSESTree.CallExpression | TSESTree.NewExpression,
): void {
if (
node.arguments.length !== 1 &&
node.callee.type === AST_NODE_TYPES.Identifier &&
node.callee.name === 'Array' &&
!node.typeArguments
) {
context.report({
node,
messageId: 'useLiteral',
fix(fixer) {
const argsText = getArgumentsText(node);
return fixer.replaceText(node, `[${argsText}]`);
},
});
}
}
-
JSDoc:
-
Parameters:
node: TSESTree.CallExpression | TSESTree.NewExpression
- Return Type:
void
- Calls:
context.report
getArgumentsText
fixer.replaceText