From 539275e014d044de1a0016272ba33036ea9d78ba Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Thu, 18 Oct 2018 11:30:43 +0200 Subject: [PATCH] feat(packagist): fetch files in parallel --- lib/datasource/packagist.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/datasource/packagist.js b/lib/datasource/packagist.js index 66f9ff16e5..09f3fb2a73 100644 --- a/lib/datasource/packagist.js +++ b/lib/datasource/packagist.js @@ -3,6 +3,7 @@ const URL = require('url'); const delay = require('delay'); const got = require('got'); const parse = require('github-url-from-git'); +const pAll = require('p-all'); const { isVersion, sortVersions } = require('../versioning')('semverComposer'); const hostRules = require('../util/host-rules'); @@ -132,10 +133,10 @@ async function getAllPackages(regUrl) { } const { packages, providersUrl, files, includesFiles } = registryMeta; const providerPackages = {}; - // TODO: refactor the following to be in parallel if (files) { - for (const file of files) { - const res = await getPackagistFile(regUrl, file); + const queue = files.map(file => () => getPackagistFile(regUrl, file)); + const resolvedFiles = await pAll(queue, { concurrency: 5 }); + for (const res of resolvedFiles) { for (const [name, val] of Object.entries(res.providers)) { providerPackages[name] = val.sha256; } -- GitLab