yaclt
Version:
Yet Another Change Log Tool
89 lines • 10.5 kB
JavaScript
;
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==