Skip to content

Commit 7dfd178

Browse files
lddubeaublakeembrey
authored andcommitted
Have TypeScript perform processing of tsconfig.json (#359)
1 parent 64fe672 commit 7dfd178

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

src/lib/converter/converter.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -425,19 +425,19 @@ export class Converter extends ChildableComponent<Application, ConverterComponen
425425
program.getSourceFiles().forEach((sourceFile) => {
426426
this.convertNode(context, sourceFile);
427427
});
428-
428+
429429
let diagnostics = program.getOptionsDiagnostics();
430430
if (diagnostics.length) return diagnostics;
431-
431+
432432
diagnostics = program.getSyntacticDiagnostics();
433433
if (diagnostics.length) return diagnostics;
434-
434+
435435
diagnostics = program.getGlobalDiagnostics();
436436
if (diagnostics.length) return diagnostics;
437437

438438
diagnostics = program.getSemanticDiagnostics();
439439
if (diagnostics.length) return diagnostics;
440-
440+
441441
return [];
442442
}
443443

src/lib/utils/options/readers/tsconfig.ts

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ export class TSConfigReader extends OptionsComponent
3636
if (TSConfigReader.OPTIONS_KEY in event.data) {
3737
this.load(event, Path.resolve(event.data[TSConfigReader.OPTIONS_KEY]));
3838
} else if (this.application.isCLI) {
39-
var file = Path.resolve('tsconfig.json');
40-
if (FS.existsSync(file)) {
39+
let file:string = ts.findConfigFile(".", ts.sys.fileExists);
40+
// If file is undefined, we found no file to load.
41+
if (file) {
4142
this.load(event, file);
4243
}
4344
}
@@ -56,7 +57,7 @@ export class TSConfigReader extends OptionsComponent
5657
return;
5758
}
5859

59-
var data = ts.readConfigFile(fileName, (fileName) => ts.sys.readFile(fileName)).config;
60+
let data = ts.readConfigFile(fileName, ts.sys.readFile).config;
6061
if (data === undefined) {
6162
event.addError('The tsconfig file %s does not contain valid JSON.', fileName);
6263
return;
@@ -66,20 +67,23 @@ export class TSConfigReader extends OptionsComponent
6667
return;
6768
}
6869

69-
if ("files" in data && _.isArray(data.files)) {
70-
event.inputFiles = data.files;
71-
}
70+
data = ts.parseJsonConfigFileContent(
71+
data,
72+
ts.sys,
73+
Path.resolve(Path.dirname(fileName)),
74+
{},
75+
Path.resolve(fileName));
7276

73-
if ("compilerOptions" in data) {
74-
var ignored = TypeScriptSource.IGNORED;
75-
var compilerOptions = _.clone(data.compilerOptions);
76-
for (var key of ignored) {
77-
delete compilerOptions[key];
78-
}
77+
event.inputFiles = data.fileNames;
7978

80-
_.merge(event.data, compilerOptions);
79+
const ignored = TypeScriptSource.IGNORED;
80+
let compilerOptions = _.clone(data.raw.compilerOptions);
81+
for (const key of ignored) {
82+
delete compilerOptions[key];
8183
}
8284

85+
_.merge(event.data, compilerOptions);
86+
8387
if ("typedocOptions" in data) {
8488
_.merge(event.data, data.typedocOptions);
8589
}

0 commit comments

Comments
 (0)