@codechecks/client
Version:
Open source platform for code review automation
39 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = require("path");
const fs_1 = require("fs");
const executeJson_1 = require("../file-executors/executeJson");
const executeYaml_1 = require("../file-executors/executeYaml");
const errors_1 = require("../utils/errors");
const CODECHECKS_SETTINGS_FILES_NAMES = ["codechecks.yml", "codechecks.yaml", "codechecks.json"];
/**
* Always try loading settings from "codechecks.yml" or "codechecks.json" files.
*/
async function loadCodechecksSettings(basePath) {
const existingFiles = CODECHECKS_SETTINGS_FILES_NAMES.map(n => path_1.join(basePath, n)).filter(filePath => {
return fs_1.existsSync(filePath);
});
const mainSettingsFile = existingFiles[0];
const userProvidedSettings = mainSettingsFile ? loadSettingsFromFile(mainSettingsFile) : {};
return normalizeSettings(userProvidedSettings);
}
exports.loadCodechecksSettings = loadCodechecksSettings;
function loadSettingsFromFile(filePath) {
const extension = path_1.extname(filePath).slice(1);
switch (extension) {
case "json":
return (executeJson_1.loadJson(filePath) || {}).settings;
case "yml":
case "yaml":
return (executeYaml_1.loadYaml(filePath) || {}).settings;
default:
throw errors_1.crash(`Unsupported file extension ${extension}`);
}
}
function normalizeSettings(userProvidedSettings = {}) {
return {
speculativeBranchSelection: userProvidedSettings.speculativeBranchSelection === false ? false : true,
branches: userProvidedSettings.branches || ["master"],
};
}
//# sourceMappingURL=settings.js.map