renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
37 lines (36 loc) • 1.55 kB
JavaScript
import { get } from "../../../modules/manager/index.js";
import { isNonEmptyArray } from "@sindresorhus/is";
//#region lib/workers/repository/extract/supersedes.ts
function processSupersedesManagers(extracts) {
const rejected = {};
for (const primaryExtract of extracts) {
const primaryManager = primaryExtract.manager;
const secondaryManagers = get(primaryExtract.manager, "supersedesManagers");
if (!isNonEmptyArray(secondaryManagers)) continue;
if (!primaryExtract.packageFiles) continue;
const primaryPackageFiles = primaryExtract.packageFiles.map(({ packageFile }) => packageFile);
for (const secondaryManager of secondaryManagers) {
const secondaryExtract = extracts.find(({ manager }) => manager === secondaryManager);
if (!secondaryExtract?.packageFiles) continue;
for (const { packageFile, lockFiles } of secondaryExtract.packageFiles) {
if (isNonEmptyArray(lockFiles)) {
rejected[primaryManager] ??= [];
rejected[primaryManager].push(packageFile);
continue;
}
if (primaryPackageFiles.includes(packageFile)) {
rejected[secondaryManager] ??= [];
rejected[secondaryManager].push(packageFile);
}
}
}
}
for (const extract of extracts) {
const rejectedFiles = rejected[extract.manager];
if (!isNonEmptyArray(rejectedFiles) || !extract.packageFiles) continue;
extract.packageFiles = extract.packageFiles.filter(({ packageFile }) => !rejectedFiles.includes(packageFile));
}
}
//#endregion
export { processSupersedesManagers };
//# sourceMappingURL=supersedes.js.map