UNPKG

johnny-dependency

Version:
30 lines (20 loc) 878 B
const { getPackageMeta } = require('./util'); const pacote = require('pacote'); function getLatestDependencies(packages, pacoteOptions = {}) { function getPackage(npmPackage) { const spec = `${npmPackage.name}@${npmPackage.version}`; return pacote.manifest(spec, pacoteOptions); } function getPackageDependencies(npmPackageName) { const packageAtVersion = { name: npmPackageName, version: 'latest' }; return getPackage(packageAtVersion).then(manifest => getPackageMeta(packageAtVersion, manifest)); } function getLatest(npmPackages) { return Promise.all(npmPackages.map(npmPackage => getPackageDependencies(npmPackage))); } return getLatest(packages).then(latestPackages => latestPackages.reduce((acc, npmPackage) => { acc[npmPackage.name] = npmPackage.version; return acc; }, {})); } module.exports = getLatestDependencies;