1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var ts = require("typescript");
|
4 | var path = require("path");
|
5 | var check_diagnostics_errors_1 = require("./check-diagnostics-errors");
|
6 | var logger_1 = require("./logger");
|
7 | var parseConfigHost = {
|
8 | useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,
|
9 | readDirectory: ts.sys.readDirectory,
|
10 | fileExists: ts.sys.fileExists,
|
11 | readFile: ts.sys.readFile,
|
12 | };
|
13 | function getCompilerOptions(inputFileName, preferredConfigPath) {
|
14 | var configFileName = preferredConfigPath !== undefined ? preferredConfigPath : findConfig(inputFileName);
|
15 | logger_1.verboseLog("Using config: " + configFileName);
|
16 | var configParseResult = ts.readConfigFile(configFileName, ts.sys.readFile);
|
17 | check_diagnostics_errors_1.checkDiagnosticsErrors(configParseResult.error !== undefined ? [configParseResult.error] : [], 'Error while processing tsconfig file');
|
18 | var compilerOptionsParseResult = ts.parseJsonConfigFileContent(configParseResult.config, parseConfigHost, path.join(configFileName, '..'));
|
19 | check_diagnostics_errors_1.checkDiagnosticsErrors(compilerOptionsParseResult.errors, 'Error while processing tsconfig compiler options');
|
20 | return compilerOptionsParseResult.options;
|
21 | }
|
22 | exports.getCompilerOptions = getCompilerOptions;
|
23 | function findConfig(inputFile) {
|
24 |
|
25 | var searchPath = inputFile.replace(/\\/g, '/');
|
26 | var configFileName = ts.findConfigFile(searchPath, ts.sys.fileExists);
|
27 | if (!configFileName) {
|
28 | throw new Error("Cannot find config file");
|
29 | }
|
30 | return configFileName;
|
31 | }
|