ls-engines
Version:
Determine if your dependency graph's stated "engines" criteria is met.
24 lines (20 loc) • 753 B
JavaScript
;
const { fromEntries } = Object;
const getLatestMajors = require('./getLatestMajors');
/** @type {import('./getLatestEngineMajors')} */
module.exports = async function getLatestEngineMajors(
selectedEngines,
allVersions,
rootRanges,
graphRanges,
) {
const majorEntries = await Promise.all(selectedEngines.map(async (engine) => {
const { validRange: rootRange } = rootRanges[engine];
const { validRange: graphRange } = graphRanges[engine] || {};
const versions = allVersions[engine];
const rootMajors = getLatestMajors(versions, rootRange);
const graphMajors = graphRange ? getLatestMajors(versions, graphRange) : [];
return [engine, { graph: graphMajors, root: rootMajors }];
}));
return fromEntries(majorEntries);
};