renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
37 lines (36 loc) • 1.34 kB
JavaScript
import { logger } from "../logger/index.js";
import { clone } from "../util/clone.js";
import { getOptions } from "./options/index.js";
import { getHighestVulnerabilitySeverity } from "../util/vulnerability/utils.js";
//#region lib/config/utils.ts
function mergeChildConfig(parent, child) {
logger.trace({
parent,
child
}, `mergeChildConfig`);
if (!child) return parent;
const parentConfig = clone(parent);
const childConfig = clone(child);
const config = {
...parentConfig,
...childConfig
};
if (config?.isVulnerabilityAlert) config.vulnerabilitySeverity = getHighestVulnerabilitySeverity(parent, child);
for (const option of getOptions()) if (option.mergeable && childConfig[option.name] && parentConfig[option.name]) {
logger.trace(`mergeable option: ${option.name}`);
if (option.name === "constraints") config[option.name] = {
...parentConfig[option.name],
...childConfig[option.name]
};
else if (option.type === "array") config[option.name] = parentConfig[option.name].concat(config[option.name]);
else config[option.name] = mergeChildConfig(parentConfig[option.name], childConfig[option.name]);
logger.trace({ result: config[option.name] }, `Merged config.${option.name}`);
}
return {
...config,
...config.force
};
}
//#endregion
export { mergeChildConfig };
//# sourceMappingURL=utils.js.map