UNPKG

@codechecks/client

Version:

Open source platform for code review automation

39 lines 1.68 kB
"use strict"; 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