"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var TsConfigLoader = require("./tsconfig-loader"); var path = require("path"); var options_1 = require("./options"); function loadConfig(cwd) { if (cwd === void 0) { cwd = options_1.options.cwd; } return configLoader({ cwd: cwd }); } exports.loadConfig = loadConfig; function configLoader(_a) { var cwd = _a.cwd, explicitParams = _a.explicitParams, _b = _a.tsConfigLoader, tsConfigLoader = _b === void 0 ? TsConfigLoader.tsConfigLoader : _b; if (explicitParams) { // tslint:disable-next-line:no-shadowed-variable var absoluteBaseUrl_1 = path.isAbsolute(explicitParams.baseUrl) ? explicitParams.baseUrl : path.join(cwd, explicitParams.baseUrl); return { resultType: "success", configFileAbsolutePath: "", baseUrl: explicitParams.baseUrl, absoluteBaseUrl: absoluteBaseUrl_1, paths: explicitParams.paths, mainFields: explicitParams.mainFields, addMatchAll: explicitParams.addMatchAll, }; } // Load tsconfig and create path matching function var loadResult = tsConfigLoader({ cwd: cwd, getEnv: function (key) { return process.env[key]; }, }); if (!loadResult.tsConfigPath) { return { resultType: "failed", message: "Couldn't find tsconfig.json", }; } if (!loadResult.baseUrl) { return { resultType: "failed", message: "Missing baseUrl in compilerOptions", }; } var tsConfigDir = path.dirname(loadResult.tsConfigPath); var absoluteBaseUrl = path.join(tsConfigDir, loadResult.baseUrl); return { resultType: "success", configFileAbsolutePath: loadResult.tsConfigPath, baseUrl: loadResult.baseUrl, absoluteBaseUrl: absoluteBaseUrl, paths: loadResult.paths || {}, }; } exports.configLoader = configLoader;