From 31f3fd9b7b6e89e9dbd7214107e2e678bfb26b38 Mon Sep 17 00:00:00 2001 From: Saurabh Batra Date: Fri, 21 Mar 2025 00:03:37 +0530 Subject: [PATCH] Get first index which has properties to make sure the lint rule works even if route is using mixin --- lib/rules/no-deprecated-router-transition-methods.js | 3 ++- lib/rules/no-implicit-injections.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/rules/no-deprecated-router-transition-methods.js b/lib/rules/no-deprecated-router-transition-methods.js index b4a47e7e2c..f1d5c0df30 100644 --- a/lib/rules/no-deprecated-router-transition-methods.js +++ b/lib/rules/no-deprecated-router-transition-methods.js @@ -25,10 +25,11 @@ function getBaseFixSteps(fixer, context, currentClass) { } if (!routerServicePropertyName) { + const targetIndex = currentClass.node.arguments?.findIndex(arg => arg?.properties?.[0]) ?? 0 fixSteps.push( currentClass.node.type === 'CallExpression' ? fixer.insertTextBefore( - currentClass.node.arguments[0].properties[0], + currentClass.node.arguments[targetIndex].properties[0], `router: ${serviceInjectImportName}('router'),\n` ) : fixer.insertTextBefore( diff --git a/lib/rules/no-implicit-injections.js b/lib/rules/no-implicit-injections.js index 9cc3fb254e..f408e65b0d 100644 --- a/lib/rules/no-implicit-injections.js +++ b/lib/rules/no-implicit-injections.js @@ -28,9 +28,10 @@ const MODULE_TYPES = [ function fixService(fixer, currentClass, serviceInjectImportName, failedConfig) { const serviceInjectPath = failedConfig.service; + const targetIndex = currentClass.node.arguments?.findIndex(arg => arg?.properties?.[0]) ?? 0 return currentClass.node.type === 'CallExpression' ? fixer.insertTextBefore( - currentClass.node.arguments[0].properties[0], + currentClass.node.arguments[targetIndex].properties[0], `${failedConfig.propertyName}: ${serviceInjectImportName}('${serviceInjectPath}'),\n` ) : fixer.insertTextBefore(