Skip to content

Commit c43c37f

Browse files
authored
Merge pull request #12454 from Microsoft/PortTypingOptionsRenameToRelease2.1
Port typingOptions rename from master to release-2.1
2 parents 432f7a9 + e5227b1 commit c43c37f

19 files changed

+224
-161
lines changed

Jakefile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ var harnessSources = harnessCoreSources.concat([
256256
"commandLineParsing.ts",
257257
"configurationExtension.ts",
258258
"convertCompilerOptionsFromJson.ts",
259-
"convertTypingOptionsFromJson.ts",
259+
"convertTypeAcquisitionFromJson.ts",
260260
"tsserverProjectSystem.ts",
261261
"compileOnSave.ts",
262262
"typingsInstaller.ts",

src/compiler/commandLineParser.ts

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -462,11 +462,18 @@ namespace ts {
462462
];
463463

464464
/* @internal */
465-
export let typingOptionDeclarations: CommandLineOption[] = [
465+
export let typeAcquisitionDeclarations: CommandLineOption[] = [
466466
{
467+
/* @deprecated typingOptions.enableAutoDiscovery
468+
* Use typeAcquisition.enable instead.
469+
*/
467470
name: "enableAutoDiscovery",
468471
type: "boolean",
469472
},
473+
{
474+
name: "enable",
475+
type: "boolean",
476+
},
470477
{
471478
name: "include",
472479
type: "list",
@@ -501,6 +508,20 @@ namespace ts {
501508

502509
let optionNameMapCache: OptionNameMap;
503510

511+
/* @internal */
512+
export function convertEnableAutoDiscoveryToEnable(typeAcquisition: TypeAcquisition): TypeAcquisition {
513+
// Convert deprecated typingOptions.enableAutoDiscovery to typeAcquisition.enable
514+
if (typeAcquisition && typeAcquisition.enableAutoDiscovery !== undefined && typeAcquisition.enable === undefined) {
515+
const result: TypeAcquisition = {
516+
enable: typeAcquisition.enableAutoDiscovery,
517+
include: typeAcquisition.include || [],
518+
exclude: typeAcquisition.exclude || []
519+
};
520+
return result;
521+
}
522+
return typeAcquisition;
523+
}
524+
504525
/* @internal */
505526
export function getOptionNameMap(): OptionNameMap {
506527
if (optionNameMapCache) {
@@ -835,15 +856,18 @@ namespace ts {
835856
return {
836857
options: {},
837858
fileNames: [],
838-
typingOptions: {},
859+
typeAcquisition: {},
839860
raw: json,
840861
errors: [createCompilerDiagnostic(Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0, [...resolutionStack, resolvedPath].join(" -> "))],
841862
wildcardDirectories: {}
842863
};
843864
}
844865

845866
let options: CompilerOptions = convertCompilerOptionsFromJsonWorker(json["compilerOptions"], basePath, errors, configFileName);
846-
const typingOptions: TypingOptions = convertTypingOptionsFromJsonWorker(json["typingOptions"], basePath, errors, configFileName);
867+
// typingOptions has been deprecated and is only supported for backward compatibility purposes.
868+
// It should be removed in future releases - use typeAcquisition instead.
869+
const jsonOptions = json["typeAcquisition"] || json["typingOptions"];
870+
const typeAcquisition: TypeAcquisition = convertTypeAcquisitionFromJsonWorker(jsonOptions, basePath, errors, configFileName);
847871

848872
if (json["extends"]) {
849873
let [include, exclude, files, baseOptions]: [string[], string[], string[], CompilerOptions] = [undefined, undefined, undefined, {}];
@@ -874,7 +898,7 @@ namespace ts {
874898
return {
875899
options,
876900
fileNames,
877-
typingOptions,
901+
typeAcquisition,
878902
raw: json,
879903
errors,
880904
wildcardDirectories,
@@ -996,9 +1020,9 @@ namespace ts {
9961020
return { options, errors };
9971021
}
9981022

999-
export function convertTypingOptionsFromJson(jsonOptions: any, basePath: string, configFileName?: string): { options: TypingOptions, errors: Diagnostic[] } {
1023+
export function convertTypeAcquisitionFromJson(jsonOptions: any, basePath: string, configFileName?: string): { options: TypeAcquisition, errors: Diagnostic[] } {
10001024
const errors: Diagnostic[] = [];
1001-
const options = convertTypingOptionsFromJsonWorker(jsonOptions, basePath, errors, configFileName);
1025+
const options = convertTypeAcquisitionFromJsonWorker(jsonOptions, basePath, errors, configFileName);
10021026
return { options, errors };
10031027
}
10041028

@@ -1012,16 +1036,18 @@ namespace ts {
10121036
return options;
10131037
}
10141038

1015-
function convertTypingOptionsFromJsonWorker(jsonOptions: any,
1016-
basePath: string, errors: Diagnostic[], configFileName?: string): TypingOptions {
1039+
function convertTypeAcquisitionFromJsonWorker(jsonOptions: any,
1040+
basePath: string, errors: Diagnostic[], configFileName?: string): TypeAcquisition {
1041+
1042+
const options: TypeAcquisition = { enable: getBaseFileName(configFileName) === "jsconfig.json", include: [], exclude: [] };
1043+
const typeAcquisition = convertEnableAutoDiscoveryToEnable(jsonOptions);
1044+
convertOptionsFromJson(typeAcquisitionDeclarations, typeAcquisition, basePath, options, Diagnostics.Unknown_type_acquisition_option_0, errors);
10171045

1018-
const options: TypingOptions = { enableAutoDiscovery: getBaseFileName(configFileName) === "jsconfig.json", include: [], exclude: [] };
1019-
convertOptionsFromJson(typingOptionDeclarations, jsonOptions, basePath, options, Diagnostics.Unknown_typing_option_0, errors);
10201046
return options;
10211047
}
10221048

10231049
function convertOptionsFromJson(optionDeclarations: CommandLineOption[], jsonOptions: any, basePath: string,
1024-
defaultOptions: CompilerOptions | TypingOptions, diagnosticMessage: DiagnosticMessage, errors: Diagnostic[]) {
1050+
defaultOptions: CompilerOptions | TypeAcquisition, diagnosticMessage: DiagnosticMessage, errors: Diagnostic[]) {
10251051

10261052
if (!jsonOptions) {
10271053
return;

src/compiler/diagnosticMessages.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3137,7 +3137,7 @@
31373137
"category": "Error",
31383138
"code": 17009
31393139
},
3140-
"Unknown typing option '{0}'.": {
3140+
"Unknown type acquisition option '{0}'.": {
31413141
"category": "Error",
31423142
"code": 17010
31433143
},

src/compiler/types.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3205,8 +3205,12 @@ namespace ts {
32053205
[option: string]: CompilerOptionsValue | undefined;
32063206
}
32073207

3208-
export interface TypingOptions {
3208+
export interface TypeAcquisition {
3209+
/* @deprecated typingOptions.enableAutoDiscovery
3210+
* Use typeAcquisition.enable instead.
3211+
*/
32093212
enableAutoDiscovery?: boolean;
3213+
enable?: boolean;
32103214
include?: string[];
32113215
exclude?: string[];
32123216
[option: string]: string[] | boolean | undefined;
@@ -3217,7 +3221,7 @@ namespace ts {
32173221
projectRootPath: string; // The path to the project root directory
32183222
safeListPath: string; // The path used to retrieve the safe list
32193223
packageNameToTypingLocation: Map<string>; // The map of package names to their cached typing locations
3220-
typingOptions: TypingOptions; // Used to customize the typing inference process
3224+
typeAcquisition: TypeAcquisition; // Used to customize the type acquisition process
32213225
compilerOptions: CompilerOptions; // Used as a source for typing inference
32223226
unresolvedImports: ReadonlyArray<string>; // List of unresolved module ids from imports
32233227
}
@@ -3282,7 +3286,7 @@ namespace ts {
32823286
/** Either a parsed command line or a parsed tsconfig.json */
32833287
export interface ParsedCommandLine {
32843288
options: CompilerOptions;
3285-
typingOptions?: TypingOptions;
3289+
typeAcquisition?: TypeAcquisition;
32863290
fileNames: string[];
32873291
raw?: any;
32883292
errors: Diagnostic[];

src/harness/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
"./unittests/commandLineParsing.ts",
109109
"./unittests/configurationExtension.ts",
110110
"./unittests/convertCompilerOptionsFromJson.ts",
111-
"./unittests/convertTypingOptionsFromJson.ts",
111+
"./unittests/convertTypeAcquisitionFromJson.ts",
112112
"./unittests/tsserverProjectSystem.ts",
113113
"./unittests/matchFiles.ts",
114114
"./unittests/initializeTSConfig.ts",

0 commit comments

Comments
 (0)