UNPKG

yaclt

Version:
89 lines 10.5 kB
"use strict"; var __values = (this && this.__values) || function(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConfig = void 0; var find_up_1 = __importDefault(require("find-up")); var fs_1 = __importDefault(require("fs")); var js_yaml_1 = __importDefault(require("js-yaml")); var os_1 = __importDefault(require("os")); var path_1 = __importDefault(require("path")); var yargs_1 = __importDefault(require("yargs")); var logger_1 = require("../utils/logger"); var supportedConfigFilenames = [ "yacltrc.yaml", ".yacltrc.yaml", "yacltrc.yml", ".yacltrc.yml", "yacltrc.json", ".yacltrc.json", "yacltrc.js", ".yacltrc.js", ]; var parseConfig = function (configPath, configContents) { if (configPath.endsWith(".json")) { return JSON.parse(configContents); } if (configPath.endsWith(".yml") || configPath.endsWith(".yaml")) { var config = js_yaml_1.default.load(configContents); if (!config || typeof config !== "object") { var message_1 = "Invalid yml configuration"; logger_1.Logger.error(message_1); yargs_1.default.exit(1, new Error(message_1)); process.exit(1); } return config; } if (configPath.endsWith(".js")) { return require(path_1.default.resolve(configPath.replace(".js", ""))); } var message = "Unsupported config format '" + configPath + "'. Only 'yacltrc.yaml', 'yacltrc.yml', 'yacltrc.json', and 'yacltrc.js'"; logger_1.Logger.error(message); yargs_1.default.exit(1, new Error(message)); process.exit(1); }; var getConfig = function () { var e_1, _a; var configPath = find_up_1.default.sync(supportedConfigFilenames); if (!configPath) { var configHome = process.env["YACLT_CONFIG_HOME"] || path_1.default.join("" + (process.env["XDG_CONFIG_HOME"] || path_1.default.join(os_1.default.homedir(), ".config/")), "yaclt"); try { for (var supportedConfigFilenames_1 = __values(supportedConfigFilenames), supportedConfigFilenames_1_1 = supportedConfigFilenames_1.next(); !supportedConfigFilenames_1_1.done; supportedConfigFilenames_1_1 = supportedConfigFilenames_1.next()) { var filename = supportedConfigFilenames_1_1.value; var globalConfigPath = path_1.default.join(configHome, filename); if (fs_1.default.existsSync(globalConfigPath)) { process.env["YACLT_CONFIG_PATH"] = globalConfigPath; var relativePath = path_1.default.relative(process.cwd(), globalConfigPath); var contents = fs_1.default.readFileSync(globalConfigPath).toString(); return parseConfig(relativePath, contents); } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (supportedConfigFilenames_1_1 && !supportedConfigFilenames_1_1.done && (_a = supportedConfigFilenames_1.return)) _a.call(supportedConfigFilenames_1); } finally { if (e_1) throw e_1.error; } } return {}; } process.env["YACLT_CONFIG_PATH"] = configPath; var configContents = fs_1.default.readFileSync(configPath).toString(); return parseConfig(configPath, configContents); }; exports.getConfig = getConfig; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2NvbmZpZy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTZCO0FBQzdCLDBDQUFvQjtBQUNwQixvREFBMkI7QUFDM0IsMENBQW9CO0FBQ3BCLDhDQUF3QjtBQUN4QixnREFBMEI7QUFDMUIsMENBQXlDO0FBRXpDLElBQU0sd0JBQXdCLEdBQUc7SUFDL0IsY0FBYztJQUNkLGVBQWU7SUFDZixhQUFhO0lBQ2IsY0FBYztJQUNkLGNBQWM7SUFDZCxlQUFlO0lBQ2YsWUFBWTtJQUNaLGFBQWE7Q0FDZCxDQUFDO0FBRUYsSUFBTSxXQUFXLEdBQUcsVUFDbEIsVUFBa0IsRUFDbEIsY0FBc0I7SUFFdEIsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUNuQztJQUVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9ELElBQU0sTUFBTSxHQUFHLGlCQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3pDLElBQU0sU0FBTyxHQUFHLDJCQUEyQixDQUFDO1lBQzVDLGVBQU0sQ0FBQyxLQUFLLENBQUMsU0FBTyxDQUFDLENBQUM7WUFDdEIsZUFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsU0FBTyxDQUFDLENBQUMsQ0FBQztZQUNsQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pCO1FBRUQsT0FBTyxNQUFpQyxDQUFDO0tBQzFDO0lBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBRzlCLE9BQU8sT0FBTyxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzdEO0lBRUQsSUFBTSxPQUFPLEdBQUcsZ0NBQThCLFVBQVUsNEVBQXlFLENBQUM7SUFDbEksZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QixlQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUssSUFBTSxTQUFTLEdBQUc7O0lBQ3ZCLElBQU0sVUFBVSxHQUFHLGlCQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFekQsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUVmLElBQU0sVUFBVSxHQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7WUFDaEMsY0FBSSxDQUFDLElBQUksQ0FDUCxNQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FDckUsRUFDRixPQUFPLENBQ1IsQ0FBQzs7WUFDSixLQUF1QixJQUFBLDZCQUFBLFNBQUEsd0JBQXdCLENBQUEsa0VBQUEsd0dBQUU7Z0JBQTVDLElBQU0sUUFBUSxxQ0FBQTtnQkFDakIsSUFBTSxnQkFBZ0IsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDekQsSUFBSSxZQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7b0JBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztvQkFFcEQsSUFBTSxZQUFZLEdBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztvQkFDcEUsSUFBTSxRQUFRLEdBQUcsWUFBRSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM5RCxPQUFPLFdBQVcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7aUJBQzVDO2FBQ0Y7Ozs7Ozs7OztRQUVELE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQzlDLElBQU0sY0FBYyxHQUFHLFlBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUQsT0FBTyxXQUFXLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQTlCVyxRQUFBLFNBQVMsYUE4QnBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpbmRVcCBmcm9tIFwiZmluZC11cFwiO1xuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHlhbWwgZnJvbSBcImpzLXlhbWxcIjtcbmltcG9ydCBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeWFyZ3MgZnJvbSBcInlhcmdzXCI7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tIFwiLi4vdXRpbHMvbG9nZ2VyXCI7XG5cbmNvbnN0IHN1cHBvcnRlZENvbmZpZ0ZpbGVuYW1lcyA9IFtcbiAgXCJ5YWNsdHJjLnlhbWxcIixcbiAgXCIueWFjbHRyYy55YW1sXCIsXG4gIFwieWFjbHRyYy55bWxcIixcbiAgXCIueWFjbHRyYy55bWxcIixcbiAgXCJ5YWNsdHJjLmpzb25cIixcbiAgXCIueWFjbHRyYy5qc29uXCIsXG4gIFwieWFjbHRyYy5qc1wiLFxuICBcIi55YWNsdHJjLmpzXCIsXG5dO1xuXG5jb25zdCBwYXJzZUNvbmZpZyA9IChcbiAgY29uZmlnUGF0aDogc3RyaW5nLFxuICBjb25maWdDb250ZW50czogc3RyaW5nXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiB7XG4gIGlmIChjb25maWdQYXRoLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShjb25maWdDb250ZW50cyk7XG4gIH1cblxuICBpZiAoY29uZmlnUGF0aC5lbmRzV2l0aChcIi55bWxcIikgfHwgY29uZmlnUGF0aC5lbmRzV2l0aChcIi55YW1sXCIpKSB7XG4gICAgY29uc3QgY29uZmlnID0geWFtbC5sb2FkKGNvbmZpZ0NvbnRlbnRzKTtcbiAgICBpZiAoIWNvbmZpZyB8fCB0eXBlb2YgY29uZmlnICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gXCJJbnZhbGlkIHltbCBjb25maWd1cmF0aW9uXCI7XG4gICAgICBMb2dnZXIuZXJyb3IobWVzc2FnZSk7XG4gICAgICB5YXJncy5leGl0KDEsIG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfVxuXG4gIGlmIChjb25maWdQYXRoLmVuZHNXaXRoKFwiLmpzXCIpKSB7XG4gICAgLy8gd2UgbmVlZCB0byByZXF1aXJlIHRoaXMgYXQgcnVudGltZSBzaW5jZSBpdCdzIGEgY29uZmlnIGZpbGVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9wcmVmZXItbW9kdWxlXG4gICAgcmV0dXJuIHJlcXVpcmUocGF0aC5yZXNvbHZlKGNvbmZpZ1BhdGgucmVwbGFjZShcIi5qc1wiLCBcIlwiKSkpO1xuICB9XG5cbiAgY29uc3QgbWVzc2FnZSA9IGBVbnN1cHBvcnRlZCBjb25maWcgZm9ybWF0ICcke2NvbmZpZ1BhdGh9Jy4gT25seSAneWFjbHRyYy55YW1sJywgJ3lhY2x0cmMueW1sJywgJ3lhY2x0cmMuanNvbicsIGFuZCAneWFjbHRyYy5qcydgO1xuICBMb2dnZXIuZXJyb3IobWVzc2FnZSk7XG4gIHlhcmdzLmV4aXQoMSwgbmV3IEVycm9yKG1lc3NhZ2UpKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbmZpZyA9ICgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiB7XG4gIGNvbnN0IGNvbmZpZ1BhdGggPSBmaW5kVXAuc3luYyhzdXBwb3J0ZWRDb25maWdGaWxlbmFtZXMpO1xuXG4gIGlmICghY29uZmlnUGF0aCkge1xuICAgIC8vIGxvb2sgZm9yIGdsb2JhbCBjb25maWcgZmlsZVxuICAgIGNvbnN0IGNvbmZpZ0hvbWUgPVxuICAgICAgcHJvY2Vzcy5lbnZbXCJZQUNMVF9DT05GSUdfSE9NRVwiXSB8fFxuICAgICAgcGF0aC5qb2luKFxuICAgICAgICBgJHtcbiAgICAgICAgICBwcm9jZXNzLmVudltcIlhER19DT05GSUdfSE9NRVwiXSB8fCBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCBcIi5jb25maWcvXCIpXG4gICAgICAgIH1gLFxuICAgICAgICBcInlhY2x0XCJcbiAgICAgICk7XG4gICAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBzdXBwb3J0ZWRDb25maWdGaWxlbmFtZXMpIHtcbiAgICAgIGNvbnN0IGdsb2JhbENvbmZpZ1BhdGggPSBwYXRoLmpvaW4oY29uZmlnSG9tZSwgZmlsZW5hbWUpO1xuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoZ2xvYmFsQ29uZmlnUGF0aCkpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnZbXCJZQUNMVF9DT05GSUdfUEFUSFwiXSA9IGdsb2JhbENvbmZpZ1BhdGg7XG4gICAgICAgIC8vIGNvbnZlcnQgdG8gcmVsYXRpdmUgcGF0aCBpbiBjYXNlIGl0J3MgYSAuanMgY29uZmlnIGZpbGVcbiAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBnbG9iYWxDb25maWdQYXRoKTtcbiAgICAgICAgY29uc3QgY29udGVudHMgPSBmcy5yZWFkRmlsZVN5bmMoZ2xvYmFsQ29uZmlnUGF0aCkudG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ29uZmlnKHJlbGF0aXZlUGF0aCwgY29udGVudHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHByb2Nlc3MuZW52W1wiWUFDTFRfQ09ORklHX1BBVEhcIl0gPSBjb25maWdQYXRoO1xuICBjb25zdCBjb25maWdDb250ZW50cyA9IGZzLnJlYWRGaWxlU3luYyhjb25maWdQYXRoKS50b1N0cmluZygpO1xuICByZXR1cm4gcGFyc2VDb25maWcoY29uZmlnUGF0aCwgY29uZmlnQ29udGVudHMpO1xufTtcbiJdfQ==