From e5227b15f930474e08ea293918b64ae30a74b12c Mon Sep 17 00:00:00 2001 From: Jason Ramsay Date: Tue, 22 Nov 2016 14:47:44 -0800 Subject: [PATCH] Addressing CR feedback --- src/compiler/commandLineParser.ts | 20 +++++++++++++------- src/server/editorServices.ts | 6 ++++++ src/server/session.ts | 6 ------ 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index e7822ebb7d7..3c6a86134ea 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -509,12 +509,17 @@ namespace ts { let optionNameMapCache: OptionNameMap; /* @internal */ - export function replaceEnableAutoDiscoveryWithEnable(typeAcquisition: TypeAcquisition): void { - // Replace deprecated typingOptions.enableAutoDiscovery with typeAcquisition.enable + export function convertEnableAutoDiscoveryToEnable(typeAcquisition: TypeAcquisition): TypeAcquisition { + // Convert deprecated typingOptions.enableAutoDiscovery to typeAcquisition.enable if (typeAcquisition && typeAcquisition.enableAutoDiscovery !== undefined && typeAcquisition.enable === undefined) { - typeAcquisition.enable = typeAcquisition.enableAutoDiscovery; - delete typeAcquisition.enableAutoDiscovery; + const result: TypeAcquisition = { + enable: typeAcquisition.enableAutoDiscovery, + include: typeAcquisition.include || [], + exclude: typeAcquisition.exclude || [] + }; + return result; } + return typeAcquisition; } /* @internal */ @@ -859,7 +864,8 @@ namespace ts { } let options: CompilerOptions = convertCompilerOptionsFromJsonWorker(json["compilerOptions"], basePath, errors, configFileName); - // typingOptions has been deprecated. Use typeAcquisition instead. + // typingOptions has been deprecated and is only supported for backward compatibility purposes. + // It should be removed in future releases - use typeAcquisition instead. const jsonOptions = json["typeAcquisition"] || json["typingOptions"]; const typeAcquisition: TypeAcquisition = convertTypeAcquisitionFromJsonWorker(jsonOptions, basePath, errors, configFileName); @@ -1034,8 +1040,8 @@ namespace ts { basePath: string, errors: Diagnostic[], configFileName?: string): TypeAcquisition { const options: TypeAcquisition = { enable: getBaseFileName(configFileName) === "jsconfig.json", include: [], exclude: [] }; - replaceEnableAutoDiscoveryWithEnable(jsonOptions); - convertOptionsFromJson(typeAcquisitionDeclarations, jsonOptions, basePath, options, Diagnostics.Unknown_type_acquisition_option_0, errors); + const typeAcquisition = convertEnableAutoDiscoveryToEnable(jsonOptions); + convertOptionsFromJson(typeAcquisitionDeclarations, typeAcquisition, basePath, options, Diagnostics.Unknown_type_acquisition_option_0, errors); return options; } diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index 25f4328e7ce..881d188307d 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -1322,6 +1322,12 @@ namespace ts.server { } openExternalProject(proj: protocol.ExternalProject): void { + // typingOptions has been deprecated and is only supported for backward compatibility + // purposes. It should be removed in future releases - use typeAcquisition instead. + if (proj.typingOptions && !proj.typeAcquisition) { + const typeAcquisition = convertEnableAutoDiscoveryToEnable(proj.typingOptions); + proj.typeAcquisition = typeAcquisition; + } let tsConfigFiles: NormalizedPath[]; const rootFiles: protocol.ExternalFile[] = []; for (const file of proj.rootFiles) { diff --git a/src/server/session.ts b/src/server/session.ts index 282964611e4..36144b3212d 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -1365,12 +1365,6 @@ namespace ts.server { private handlers = createMap<(request: protocol.Request) => { response?: any, responseRequired?: boolean }>({ [CommandNames.OpenExternalProject]: (request: protocol.OpenExternalProjectRequest) => { - // Replace deprecated typingOptions with typeAcquisition - if (request.arguments.typingOptions && !request.arguments.typeAcquisition) { - replaceEnableAutoDiscoveryWithEnable(request.arguments.typingOptions); - request.arguments.typeAcquisition = request.arguments.typingOptions; - delete request.arguments.typingOptions; - } this.projectService.openExternalProject(request.arguments); // TODO: report errors return this.requiredResponse(true);