From 8f5a76d48bf309d2387df517918e9ed389bb9bd4 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Fri, 5 Jan 2018 14:24:40 -0800 Subject: [PATCH 1/3] Make fixCannotFindModule return an empty array if there is no code action --- src/services/codefixes/fixCannotFindModule.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/services/codefixes/fixCannotFindModule.ts b/src/services/codefixes/fixCannotFindModule.ts index 2a3736531b..2a12326743 100644 --- a/src/services/codefixes/fixCannotFindModule.ts +++ b/src/services/codefixes/fixCannotFindModule.ts @@ -4,9 +4,8 @@ namespace ts.codefix { const errorCodes = [Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code]; registerCodeFix({ errorCodes, - getCodeActions: context => [ - { fixId, ...tryGetCodeActionForInstallPackageTypes(context.host, context.sourceFile.fileName, getModuleName(context.sourceFile, context.span.start)) } - ], + getCodeActions: context => (codeAction => codeAction ? [ { fixId, ...codeAction } ] : [])( + tryGetCodeActionForInstallPackageTypes(context.host, context.sourceFile.fileName, getModuleName(context.sourceFile, context.span.start))), fixIds: [fixId], getAllCodeActions: context => codeFixAll(context, errorCodes, (_, diag, commands) => { const pkg = getTypesPackageNameToInstall(context.host, getModuleName(diag.file, diag.start)); From ded788e56074e334860d93ec7fc1b1c7f4e041ef Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Fri, 5 Jan 2018 14:54:59 -0800 Subject: [PATCH 2/3] Slightly simplify getCodeActions --- src/services/codefixes/fixCannotFindModule.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/codefixes/fixCannotFindModule.ts b/src/services/codefixes/fixCannotFindModule.ts index 2a12326743..75aad8935f 100644 --- a/src/services/codefixes/fixCannotFindModule.ts +++ b/src/services/codefixes/fixCannotFindModule.ts @@ -4,7 +4,7 @@ namespace ts.codefix { const errorCodes = [Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code]; registerCodeFix({ errorCodes, - getCodeActions: context => (codeAction => codeAction ? [ { fixId, ...codeAction } ] : [])( + getCodeActions: context => (codeAction => codeAction && [{ fixId, ...codeAction }])( tryGetCodeActionForInstallPackageTypes(context.host, context.sourceFile.fileName, getModuleName(context.sourceFile, context.span.start))), fixIds: [fixId], getAllCodeActions: context => codeFixAll(context, errorCodes, (_, diag, commands) => { From 47aad0b8fd2dd1989afbf82079dc1f7b097ef9d1 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Fri, 5 Jan 2018 16:12:12 -0800 Subject: [PATCH 3/3] Switch to block-bodied lambda --- src/services/codefixes/fixCannotFindModule.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/services/codefixes/fixCannotFindModule.ts b/src/services/codefixes/fixCannotFindModule.ts index 75aad8935f..a28a46caf1 100644 --- a/src/services/codefixes/fixCannotFindModule.ts +++ b/src/services/codefixes/fixCannotFindModule.ts @@ -4,8 +4,10 @@ namespace ts.codefix { const errorCodes = [Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code]; registerCodeFix({ errorCodes, - getCodeActions: context => (codeAction => codeAction && [{ fixId, ...codeAction }])( - tryGetCodeActionForInstallPackageTypes(context.host, context.sourceFile.fileName, getModuleName(context.sourceFile, context.span.start))), + getCodeActions: context => { + const codeAction = tryGetCodeActionForInstallPackageTypes(context.host, context.sourceFile.fileName, getModuleName(context.sourceFile, context.span.start)); + return codeAction && [{ fixId, ...codeAction }]; + }, fixIds: [fixId], getAllCodeActions: context => codeFixAll(context, errorCodes, (_, diag, commands) => { const pkg = getTypesPackageNameToInstall(context.host, getModuleName(diag.file, diag.start));