From 76cb6cf40d2e80f422dc80a8840122e0b78f1319 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Thu, 27 Feb 2020 14:54:45 +0100
Subject: [PATCH] refactor: remove DATASOURCE_ constants from presets

---
 .../presets/__snapshots__/index.spec.ts.snap  | 32 +++++++++----------
 lib/config/presets/github.ts                  |  3 +-
 lib/config/presets/index.ts                   | 28 ++++++----------
 3 files changed, 27 insertions(+), 36 deletions(-)

diff --git a/lib/config/presets/__snapshots__/index.spec.ts.snap b/lib/config/presets/__snapshots__/index.spec.ts.snap
index 47698dfb1c..3a7041cf74 100644
--- a/lib/config/presets/__snapshots__/index.spec.ts.snap
+++ b/lib/config/presets/__snapshots__/index.spec.ts.snap
@@ -82,93 +82,92 @@ Object {
 
 exports[`config/presets parsePreset parses github 1`] = `
 Object {
-  "datasource": "github",
   "packageName": "some/repo",
   "params": undefined,
   "presetName": "default",
+  "presetSource": "github",
 }
 `;
 
 exports[`config/presets parsePreset parses gitlab 1`] = `
 Object {
-  "datasource": "gitlab",
   "packageName": "some/repo",
   "params": undefined,
   "presetName": "default",
+  "presetSource": "gitlab",
 }
 `;
 
 exports[`config/presets parsePreset returns default package name 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "renovate-config-default",
   "params": undefined,
   "presetName": "base",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns default package name with params 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "renovate-config-default",
   "params": Array [
     "packages/eslint",
     "eslint",
   ],
   "presetName": "group",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns non-scoped default 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "renovate-config-somepackage",
   "params": undefined,
   "presetName": "default",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns non-scoped package name 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "renovate-config-somepackage",
   "params": undefined,
   "presetName": "webapp",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns non-scoped package name full 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "renovate-config-somepackage",
   "params": undefined,
   "presetName": "webapp",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns non-scoped package name with params 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "renovate-config-somepackage",
   "params": Array [
     "param1",
   ],
   "presetName": "webapp",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns scope with packageName and default 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "@somescope/somepackagename",
   "params": undefined,
   "presetName": "default",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns scope with packageName and params and default 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "@somescope/somepackagename",
   "params": Array [
     "param1",
@@ -176,67 +175,68 @@ Object {
     "param3",
   ],
   "presetName": "default",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns scope with packageName and presetName 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "@somescope/somepackagename",
   "params": undefined,
   "presetName": "somePresetName",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns scope with packageName and presetName and params 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "@somescope/somepackagename",
   "params": Array [
     "param1",
     "param2",
   ],
   "presetName": "somePresetName",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns scope with presetName 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "@somescope/renovate-config",
   "params": undefined,
   "presetName": "somePresetName",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns scope with presetName and params 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "@somescope/renovate-config",
   "params": Array [
     "param1",
   ],
   "presetName": "somePresetName",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns simple scope 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "@somescope/renovate-config",
   "params": undefined,
   "presetName": "default",
+  "presetSource": "npm",
 }
 `;
 
 exports[`config/presets parsePreset returns simple scope and params 1`] = `
 Object {
-  "datasource": "npm",
   "packageName": "@somescope/renovate-config",
   "params": Array [
     "param1",
   ],
   "presetName": "default",
+  "presetSource": "npm",
 }
 `;
 
diff --git a/lib/config/presets/github.ts b/lib/config/presets/github.ts
index 34f82642a7..175c7dbb82 100644
--- a/lib/config/presets/github.ts
+++ b/lib/config/presets/github.ts
@@ -2,7 +2,6 @@ import { logger } from '../../logger';
 import { Preset } from './common';
 import got, { GotJSONOptions } from '../../util/got';
 import { PLATFORM_FAILURE } from '../../constants/error-messages';
-import { DATASOURCE_GITHUB } from '../../constants/data-binary-source';
 
 async function fetchJSONFile(repo: string, fileName: string): Promise<Preset> {
   const url = `https://api.github.com/repos/${repo}/contents/${fileName}`;
@@ -13,7 +12,7 @@ async function fetchJSONFile(repo: string, fileName: string): Promise<Preset> {
         : 'application/vnd.github.v3+json',
     },
     json: true,
-    hostType: DATASOURCE_GITHUB,
+    hostType: 'github',
   };
   let res: { body: { content: string } };
   try {
diff --git a/lib/config/presets/index.ts b/lib/config/presets/index.ts
index 2092f55c8e..ae21cfda83 100644
--- a/lib/config/presets/index.ts
+++ b/lib/config/presets/index.ts
@@ -13,13 +13,8 @@ import {
   DATASOURCE_FAILURE,
   PLATFORM_FAILURE,
 } from '../../constants/error-messages';
-import {
-  DATASOURCE_GITHUB,
-  DATASOURCE_GITLAB,
-  DATASOURCE_NPM,
-} from '../../constants/data-binary-source';
 
-const datasources = {
+const presetSources = {
   github,
   npm,
   gitlab,
@@ -56,19 +51,19 @@ export function replaceArgs(
 
 export function parsePreset(input: string): ParsedPreset {
   let str = input;
-  let datasource: string;
+  let presetSource: string;
   let packageName: string;
   let presetName: string;
   let params: string[];
   if (str.startsWith('github>')) {
-    datasource = DATASOURCE_GITHUB;
+    presetSource = 'github';
     str = str.substring('github>'.length);
   } else if (str.startsWith('gitlab>')) {
-    datasource = DATASOURCE_GITLAB;
+    presetSource = 'gitlab';
     str = str.substring('gitlab>'.length);
   }
   str = str.replace(/^npm>/, '');
-  datasource = datasource || DATASOURCE_NPM;
+  presetSource = presetSource || 'npm';
   if (str.includes('(')) {
     params = str
       .slice(str.indexOf('(') + 1, -1)
@@ -96,23 +91,20 @@ export function parsePreset(input: string): ParsedPreset {
     // non-scoped namespace
     [, packageName] = /(.*?)(:|$)/.exec(str);
     presetName = str.slice(packageName.length + 1);
-    if (
-      datasource === DATASOURCE_NPM &&
-      !packageName.startsWith('renovate-config-')
-    ) {
+    if (presetSource === 'npm' && !packageName.startsWith('renovate-config-')) {
       packageName = `renovate-config-${packageName}`;
     }
     if (presetName === '') {
       presetName = 'default';
     }
   }
-  return { datasource, packageName, presetName, params };
+  return { presetSource, packageName, presetName, params };
 }
 
 export async function getPreset(preset: string): Promise<RenovateConfig> {
   logger.trace(`getPreset(${preset})`);
-  const { datasource, packageName, presetName, params } = parsePreset(preset);
-  let presetConfig = await datasources[datasource].getPreset(
+  const { presetSource, packageName, presetName, params } = parsePreset(preset);
+  let presetConfig = await presetSources[presetSource].getPreset(
     packageName,
     presetName
   );
@@ -254,7 +246,7 @@ export async function resolveConfigPresets(
 }
 
 export interface ParsedPreset {
-  datasource: string;
+  presetSource: string;
   packageName: string;
   presetName: string;
   params?: string[];
-- 
GitLab