UNPKG

1.62 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var ts = require("typescript");
4var path = require("path");
5var check_diagnostics_errors_1 = require("./check-diagnostics-errors");
6var logger_1 = require("./logger");
7var parseConfigHost = {
8 useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,
9 readDirectory: ts.sys.readDirectory,
10 fileExists: ts.sys.fileExists,
11 readFile: ts.sys.readFile,
12};
13function 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}
22exports.getCompilerOptions = getCompilerOptions;
23function findConfig(inputFile) {
24 // special case for windows
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}