@code-pushup/js-packages-plugin
Version:
Code PushUp plugin for JavaScript packages 🛡️
43 lines • 1.65 kB
JavaScript
import { objectFromEntries, objectToKeys, readJsonFile, } from '@code-pushup/utils';
import { dependencyGroupLong, } from './outdated/types.js';
export function filterAuditResult(result, key, referenceResult) {
if (result.vulnerabilities.length === 0) {
return result;
}
const uniqueResult = result.vulnerabilities.reduce((acc, ref) => {
const matchReference = referenceResult ?? acc;
const isMatch = matchReference.vulnerabilities
.map(vulnerability => vulnerability[key])
.includes(ref[key]);
if (isMatch) {
return {
vulnerabilities: acc.vulnerabilities,
summary: {
...acc.summary,
[ref.severity]: acc.summary[ref.severity] - 1,
total: acc.summary.total - 1,
},
};
}
return {
vulnerabilities: [...acc.vulnerabilities, ref],
summary: acc.summary,
};
}, { vulnerabilities: [], summary: result.summary });
return {
vulnerabilities: uniqueResult.vulnerabilities,
summary: uniqueResult.summary,
};
}
export async function getTotalDependencies(packageJsonPath) {
const parsedDeps = await readJsonFile(packageJsonPath);
const mergedDeps = objectFromEntries(dependencyGroupLong.map(group => {
const deps = parsedDeps[group];
return [group, deps == null ? [] : objectToKeys(deps)];
}));
return objectFromEntries(objectToKeys(mergedDeps).map(deps => [
deps,
new Set(mergedDeps[deps]).size,
]));
}
//# sourceMappingURL=utils.js.map