⬅️ Back to Table of Contents
📄 no-dynamic-delete.ts
📊 Analysis Summary
Metric |
Count |
🔧 Functions |
4 |
📦 Imports |
6 |
📚 Table of Contents
🛠️ File Location:
📂 packages/eslint-plugin/src/rules/no-dynamic-delete.ts
📦 Imports
Name |
Source |
TSESLint |
@typescript-eslint/utils |
TSESTree |
@typescript-eslint/utils |
AST_NODE_TYPES |
@typescript-eslint/utils |
createRule |
../util |
nullThrows |
../util |
NullThrowsReasons |
../util |
Functions
createFixer(member: TSESTree.MemberExpression): TSESLint.ReportFixFunction | undefined
Code
function createFixer(
member: TSESTree.MemberExpression,
): TSESLint.ReportFixFunction | undefined {
if (
member.property.type === AST_NODE_TYPES.Literal &&
typeof member.property.value === 'string'
) {
return createPropertyReplacement(
member.property,
`.${member.property.value}`,
);
}
return undefined;
}
- Parameters:
member: TSESTree.MemberExpression
- Return Type:
TSESLint.ReportFixFunction | undefined
- Calls:
createPropertyReplacement
createPropertyReplacement(property: TSESTree.Expression, replacement: string): (fixer: TSESLint.RuleFixer) => TSESLint.RuleFix
Code
function createPropertyReplacement(
property: TSESTree.Expression,
replacement: string,
) {
return (fixer: TSESLint.RuleFixer): TSESLint.RuleFix =>
fixer.replaceTextRange(getTokenRange(property), replacement);
}
- Parameters:
property: TSESTree.Expression
replacement: string
- Return Type:
(fixer: TSESLint.RuleFixer) => TSESLint.RuleFix
- Calls:
fixer.replaceTextRange
getTokenRange
getTokenRange(property: TSESTree.Expression): [number, number]
Code
function getTokenRange(property: TSESTree.Expression): [number, number] {
return [
nullThrows(
context.sourceCode.getTokenBefore(property),
NullThrowsReasons.MissingToken('token before', 'property'),
).range[0],
nullThrows(
context.sourceCode.getTokenAfter(property),
NullThrowsReasons.MissingToken('token after', 'property'),
).range[1],
];
}
- Parameters:
property: TSESTree.Expression
- Return Type:
[number, number]
- Calls:
nullThrows (from ../util)
context.sourceCode.getTokenBefore
NullThrowsReasons.MissingToken
context.sourceCode.getTokenAfter
isAcceptableIndexExpression(property: TSESTree.Expression): boolean
Code
function isAcceptableIndexExpression(property: TSESTree.Expression): boolean {
return (
(property.type === AST_NODE_TYPES.Literal &&
['number', 'string'].includes(typeof property.value)) ||
(property.type === AST_NODE_TYPES.UnaryExpression &&
property.operator === '-' &&
property.argument.type === AST_NODE_TYPES.Literal &&
typeof property.argument.value === 'number')
);
}
- Parameters:
property: TSESTree.Expression
- Return Type:
boolean
- Calls:
['number', 'string'].includes