Addressing CR feedback

This commit is contained in:
Jason Ramsay 2016-11-22 14:47:44 -08:00
parent 19dcb45e4f
commit e5227b15f9
3 changed files with 19 additions and 13 deletions

View file

@ -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;
}

View file

@ -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) {

View file

@ -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);