From 82cc45b2e55d70377e1b4256df759887fc83d606 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Tue, 29 Jan 2019 09:15:46 +0100
Subject: [PATCH] refactor: purl.type -> purl.datasource

---
 lib/datasource/index.js                   | 10 +++++-----
 lib/datasource/metadata.js                | 13 ++++++++-----
 lib/util/purl.js                          |  2 +-
 test/util/__snapshots__/purl.spec.js.snap | 12 ++++++------
 4 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/lib/datasource/index.js b/lib/datasource/index.js
index 06b8712ace..b6134555c6 100644
--- a/lib/datasource/index.js
+++ b/lib/datasource/index.js
@@ -81,23 +81,23 @@ async function fetchReleases(config) {
     logger.info({ purlStr }, 'Cannot parse purl');
     return null;
   }
-  if (!datasources[purl.type]) {
-    logger.warn({ purlStr }, 'Unknown purl type: ' + purl.type);
+  if (!datasources[purl.datasource]) {
+    logger.warn({ purlStr }, 'Unknown purl type: ' + purl.datasource);
     return null;
   }
-  const dep = await datasources[purl.type].getPkgReleases(purl, config);
+  const dep = await datasources[purl.datasource].getPkgReleases(purl, config);
   addMetaData(purl, dep);
   return dep;
 }
 
 function supportsDigests(purlStr) {
   const purl = parse(purlStr);
-  return !!datasources[purl.type].getDigest;
+  return !!datasources[purl.datasource].getDigest;
 }
 
 function getDigest(config, value) {
   const purl = parse(config.purl);
-  return datasources[purl.type].getDigest(config, value);
+  return datasources[purl.datasource].getDigest(config, value);
 }
 
 module.exports = {
diff --git a/lib/datasource/metadata.js b/lib/datasource/metadata.js
index 03fdef982a..99d88ffa27 100644
--- a/lib/datasource/metadata.js
+++ b/lib/datasource/metadata.js
@@ -70,13 +70,16 @@ function addMetaData(purl, dep) {
   }
   const depName = purl.lookupName.toLowerCase();
   if (
-    manualChangelogUrls[purl.type] &&
-    manualChangelogUrls[purl.type][depName]
+    manualChangelogUrls[purl.datasource] &&
+    manualChangelogUrls[purl.datasource][depName]
   ) {
-    dep.changelogUrl = manualChangelogUrls[purl.type][depName];
+    dep.changelogUrl = manualChangelogUrls[purl.datasource][depName];
   }
-  if (manualSourceUrls[purl.type] && manualSourceUrls[purl.type][depName]) {
-    dep.sourceUrl = manualSourceUrls[purl.type][depName];
+  if (
+    manualSourceUrls[purl.datasource] &&
+    manualSourceUrls[purl.datasource][depName]
+  ) {
+    dep.sourceUrl = manualSourceUrls[purl.datasource][depName];
   }
   if (
     !dep.sourceUrl &&
diff --git a/lib/util/purl.js b/lib/util/purl.js
index 7a112eb6e7..2b4e35ae7e 100644
--- a/lib/util/purl.js
+++ b/lib/util/purl.js
@@ -25,7 +25,7 @@ function parse(input) {
     [remaining, res.version] = parts;
   }
   parts = remaining.split('/');
-  [res.type, ...remaining] = parts;
+  [res.datasource, ...remaining] = parts;
   if (remaining.length === 1) {
     [res.name] = remaining;
     res.lookupName = res.name;
diff --git a/test/util/__snapshots__/purl.spec.js.snap b/test/util/__snapshots__/purl.spec.js.snap
index a30d63171b..dfb2156edc 100644
--- a/test/util/__snapshots__/purl.spec.js.snap
+++ b/test/util/__snapshots__/purl.spec.js.snap
@@ -2,52 +2,53 @@
 
 exports[`util/purl parse() parses namespaced npm 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "@foo/bar",
   "name": "bar",
   "namespace": "@foo",
   "qualifiers": Object {},
-  "type": "npm",
 }
 `;
 
 exports[`util/purl parse() parses namespaced npm with version 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "@foo/bar",
   "name": "bar",
   "namespace": "@foo",
   "qualifiers": Object {},
-  "type": "npm",
   "version": "1.0.0",
 }
 `;
 
 exports[`util/purl parse() parses npm with version and 1 qualifier 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "foo",
   "name": "foo",
   "qualifiers": Object {
     "a": "b",
   },
-  "type": "npm",
   "version": "1.0.0",
 }
 `;
 
 exports[`util/purl parse() parses npm with version and 2 qualifiers 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "foo",
   "name": "foo",
   "qualifiers": Object {
     "a": "b",
     "c": "d",
   },
-  "type": "npm",
   "version": "1.0.0",
 }
 `;
 
 exports[`util/purl parse() parses npm with version and 2 qualifiers and subpath 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "foo",
   "name": "foo",
   "qualifiers": Object {
@@ -55,16 +56,15 @@ Object {
     "c": "d",
   },
   "subpath": "stop",
-  "type": "npm",
   "version": "1.0.0",
 }
 `;
 
 exports[`util/purl parse() parses simple npm 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "foo",
   "name": "foo",
   "qualifiers": Object {},
-  "type": "npm",
 }
 `;
-- 
GitLab