Skip to content

Commit 9e2df04

Browse files
author
Kanchalai Tanglertsampan
committed
Address PR
1 parent 266a92b commit 9e2df04

File tree

4 files changed

+16
-14
lines changed

4 files changed

+16
-14
lines changed

src/compiler/commandLineParser.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ namespace ts {
478478
}
479479
}
480480

481-
function parseListTypeOption(opt: CommandLineOptionOfListType, value: string): (number | string)[] {
481+
function parseListTypeOption(opt: CommandLineOptionOfListType, value: string): (string | number)[] {
482482
const values = (value || "").trim().split(",");
483483
switch (opt.element.type) {
484484
case "number":
@@ -590,9 +590,9 @@ namespace ts {
590590
*/
591591
export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions: CompilerOptions = {}, configFileName?: string): ParsedCommandLine {
592592
const errors: Diagnostic[] = [];
593-
const compilerOptions: CompilerOptions = convertCompilerOptionsFromJson(optionDeclarations, json["compilerOptions"], basePath, configFileName, errors);
593+
const compilerOptions: CompilerOptions = convertCompilerOptionsFromJson(optionDeclarations, json["compilerOptions"], basePath, errors, configFileName);
594594
const options = extend(existingOptions, compilerOptions);
595-
const typingOptions: TypingOptions = convertTypingOptionsFromJson(typingOptionDeclarations, json["typingOptions"], basePath, configFileName, errors);
595+
const typingOptions: TypingOptions = convertTypingOptionsFromJson(typingOptionDeclarations, json["typingOptions"], basePath, errors, configFileName);
596596

597597
const fileNames = getFileNames(errors);
598598

@@ -667,27 +667,27 @@ namespace ts {
667667
}
668668

669669
/* @internal */
670-
export function convertCompilerOptionsFromJson(optionsDeclarations: CommandLineOption[], jsonOptions: any, basePath: string,
671-
configFileName: string, errors: Diagnostic[]): CompilerOptions {
670+
export function convertCompilerOptionsFromJson(optionsDeclarations: CommandLineOption[], jsonOptions: any,
671+
basePath: string, errors: Diagnostic[], configFileName?: string): CompilerOptions {
672672

673673
const options: CompilerOptions = getBaseFileName(configFileName) === "jsconfig.json" ? { allowJs: true } : {};
674-
convertOptionsFromJson<CompilerOptions>(optionDeclarations, jsonOptions, basePath, configFileName, options, Diagnostics.Unknown_compiler_option_0, errors);
674+
convertOptionsFromJson<CompilerOptions>(optionDeclarations, jsonOptions, basePath, options, Diagnostics.Unknown_compiler_option_0, errors);
675675
return options;
676676
}
677677

678678
/* @internal */
679-
export function convertTypingOptionsFromJson(optionsDeclarations: CommandLineOption[], jsonOptions: any, basePath: string,
680-
configFileName: string, errors: Diagnostic[]): TypingOptions {
679+
export function convertTypingOptionsFromJson(optionsDeclarations: CommandLineOption[], jsonOptions: any,
680+
basePath: string, errors: Diagnostic[], configFileName?: string): TypingOptions {
681681

682682
const options: TypingOptions = getBaseFileName(configFileName) === "jsconfig.json"
683683
? { enableAutoDiscovery: true, include: [], exclude: [] }
684684
: { enableAutoDiscovery: false, include: [], exclude: [] };
685-
convertOptionsFromJson<TypingOptions>(typingOptionDeclarations, jsonOptions, basePath, configFileName, options, Diagnostics.Unknown_typing_option_0, errors);
685+
convertOptionsFromJson<TypingOptions>(typingOptionDeclarations, jsonOptions, basePath, options, Diagnostics.Unknown_typing_option_0, errors);
686686
return options;
687687
}
688688

689689
function convertOptionsFromJson<T extends CompilerOptions | TypingOptions>(optionDeclarations: CommandLineOption[], jsonOptions: any, basePath: string,
690-
configFileName: string, defaultOptions: T, diagnosticMessage: DiagnosticMessage, errors: Diagnostic[]) {
690+
defaultOptions: T, diagnosticMessage: DiagnosticMessage, errors: Diagnostic[]) {
691691

692692
if (!jsonOptions) {
693693
return ;
@@ -706,7 +706,7 @@ namespace ts {
706706
}
707707
}
708708

709-
function convertJsonOption(opt: CommandLineOption, value: any, basePath: string, errors: Diagnostic[]): number | string | number[] | string[] {
709+
function convertJsonOption(opt: CommandLineOption, value: any, basePath: string, errors: Diagnostic[]): CompilerOptionsValue {
710710
const optType = opt.type;
711711
const expectedType = typeof optType === "string" ? optType : "string";
712712
if (optType === "list" && isArray(value)) {

src/compiler/types.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2381,6 +2381,8 @@ namespace ts {
23812381
export type PathSubstitutions = Map<string[]>;
23822382
export type TsConfigOnlyOptions = RootPaths | PathSubstitutions;
23832383

2384+
export type CompilerOptionsValue = string | number | boolean | (string | number)[] | TsConfigOnlyOptions;
2385+
23842386
export interface CompilerOptions {
23852387
allowNonTsExtensions?: boolean;
23862388
charset?: string;
@@ -2447,7 +2449,7 @@ namespace ts {
24472449

24482450
list?: string[];
24492451

2450-
[option: string]: string | number | boolean | TsConfigOnlyOptions | (string | number)[];
2452+
[option: string]: CompilerOptionsValue;
24512453
}
24522454

24532455
export interface TypingOptions {

tests/cases/unittests/convertCompilerOptionsFromJson.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace ts {
55
describe('convertCompilerOptionsFromJson', () => {
66
function assertCompilerOptions(json: any, configFileName: string, expectedResult: { compilerOptions: CompilerOptions, errors: Diagnostic[] }) {
77
const actualErrors: Diagnostic[] = [];
8-
const actualCompilerOptions: CompilerOptions = convertCompilerOptionsFromJson(optionDeclarations, json["compilerOptions"], "/apath/", configFileName, actualErrors);
8+
const actualCompilerOptions: CompilerOptions = convertCompilerOptionsFromJson(optionDeclarations, json["compilerOptions"], "/apath/", actualErrors, configFileName);
99

1010
const parsedCompilerOptions = JSON.stringify(actualCompilerOptions);
1111
const expectedCompilerOptions = JSON.stringify(expectedResult.compilerOptions);

tests/cases/unittests/convertTypingOptionsFromJson.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace ts {
55
describe('convertTypingOptionsFromJson', () => {
66
function assertTypingOptions(json: any, configFileName: string, expectedResult: { typingOptions: TypingOptions, errors: Diagnostic[] }) {
77
const actualErrors: Diagnostic[] = [];
8-
const actualTypingOptions = convertTypingOptionsFromJson(typingOptionDeclarations, json["typingOptions"], "/apath/", configFileName, actualErrors);
8+
const actualTypingOptions = convertTypingOptionsFromJson(typingOptionDeclarations, json["typingOptions"], "/apath/", actualErrors, configFileName);
99
const parsedTypingOptions = JSON.stringify(actualTypingOptions);
1010
const expectedTypingOptions = JSON.stringify(expectedResult.typingOptions);
1111
assert.equal(parsedTypingOptions, expectedTypingOptions);

0 commit comments

Comments
 (0)