From 4c287bc6557454ceea8e121f3c45c20bbea7160b Mon Sep 17 00:00:00 2001
From: Jamie Magee <JamieMagee@users.noreply.github.com>
Date: Fri, 29 Nov 2019 13:52:46 +0100
Subject: [PATCH] refactor(logger): convert more loggers to typescript (#4887)

Co-Authored-By: Michael Kriese <michael.kriese@visualon.de>
---
 lib/logger/{cmd-serializer.js => cmd-serializer.ts} |  4 +---
 .../{config-serializer.js => config-serializer.ts}  | 13 +++++++------
 lib/logger/{err-serializer.js => err-serializer.ts} |  3 ++-
 package.json                                        |  1 +
 ....spec.js.snap => config-serializer.spec.ts.snap} |  0
 ...zer.spec.js.snap => err-serializer.spec.ts.snap} |  0
 ...serializer.spec.js => config-serializer.spec.ts} |  2 +-
 ...rr-serializer.spec.js => err-serializer.spec.ts} |  0
 yarn.lock                                           |  5 +++++
 9 files changed, 17 insertions(+), 11 deletions(-)
 rename lib/logger/{cmd-serializer.js => cmd-serializer.ts} (60%)
 rename lib/logger/{config-serializer.js => config-serializer.ts} (81%)
 rename lib/logger/{err-serializer.js => err-serializer.ts} (93%)
 rename test/logger/__snapshots__/{config-serializer.spec.js.snap => config-serializer.spec.ts.snap} (100%)
 rename test/logger/__snapshots__/{err-serializer.spec.js.snap => err-serializer.spec.ts.snap} (100%)
 rename test/logger/{config-serializer.spec.js => config-serializer.spec.ts} (88%)
 rename test/logger/{err-serializer.spec.js => err-serializer.spec.ts} (100%)

diff --git a/lib/logger/cmd-serializer.js b/lib/logger/cmd-serializer.ts
similarity index 60%
rename from lib/logger/cmd-serializer.js
rename to lib/logger/cmd-serializer.ts
index 02950a6a96..55822f79d9 100644
--- a/lib/logger/cmd-serializer.js
+++ b/lib/logger/cmd-serializer.ts
@@ -1,6 +1,4 @@
-export default cmdSerializer;
-
 // istanbul ignore next
-function cmdSerializer(cmd) {
+export default function(cmd: string): string {
   return cmd.replace(/https:\/\/[^@]*@/g, 'https://**redacted**@');
 }
diff --git a/lib/logger/config-serializer.js b/lib/logger/config-serializer.ts
similarity index 81%
rename from lib/logger/config-serializer.js
rename to lib/logger/config-serializer.ts
index ef5de7c3d4..6167662bba 100644
--- a/lib/logger/config-serializer.js
+++ b/lib/logger/config-serializer.ts
@@ -1,8 +1,9 @@
-const traverse = require('traverse');
+import traverse from 'traverse';
+import { RenovateConfig } from '../config/common';
 
-module.exports = configSerializer;
-
-function configSerializer(config) {
+export default function configSerializer(
+  config: RenovateConfig
+): RenovateConfig {
   const redactedFields = [
     'authorization',
     'token',
@@ -23,10 +24,10 @@ function configSerializer(config) {
     'yarnLockParsed',
   ];
   const arrayFields = ['packageFiles', 'upgrades'];
+
   return traverse(config).map(
-    /** @this {{key:string, update: (val:any) => void}} */
     // eslint-disable-next-line array-callback-return
-    function scrub(val) {
+    function scrub(val: string) {
       if (val && redactedFields.includes(this.key)) {
         this.update('***********');
       }
diff --git a/lib/logger/err-serializer.js b/lib/logger/err-serializer.ts
similarity index 93%
rename from lib/logger/err-serializer.js
rename to lib/logger/err-serializer.ts
index 011c2a4fc0..66aeef13d6 100644
--- a/lib/logger/err-serializer.js
+++ b/lib/logger/err-serializer.ts
@@ -1,6 +1,7 @@
 import is from '@sindresorhus/is';
 
-export default function errSerializer(err) {
+// TODO: remove any type
+export default function errSerializer(err: any): any {
   const response = {
     ...err,
   };
diff --git a/package.json b/package.json
index 4630779d43..9f39907e24 100644
--- a/package.json
+++ b/package.json
@@ -192,6 +192,7 @@
     "@types/semver": "6.2.0",
     "@types/shelljs": "0.8.6",
     "@types/tmp": "0.1.0",
+    "@types/traverse": "^0.6.32",
     "@types/validator": "10.11.3",
     "@types/xmldoc": "1.1.4",
     "@typescript-eslint/eslint-plugin": "2.9.0",
diff --git a/test/logger/__snapshots__/config-serializer.spec.js.snap b/test/logger/__snapshots__/config-serializer.spec.ts.snap
similarity index 100%
rename from test/logger/__snapshots__/config-serializer.spec.js.snap
rename to test/logger/__snapshots__/config-serializer.spec.ts.snap
diff --git a/test/logger/__snapshots__/err-serializer.spec.js.snap b/test/logger/__snapshots__/err-serializer.spec.ts.snap
similarity index 100%
rename from test/logger/__snapshots__/err-serializer.spec.js.snap
rename to test/logger/__snapshots__/err-serializer.spec.ts.snap
diff --git a/test/logger/config-serializer.spec.js b/test/logger/config-serializer.spec.ts
similarity index 88%
rename from test/logger/config-serializer.spec.js
rename to test/logger/config-serializer.spec.ts
index 8265ab1f87..a4943e2416 100644
--- a/test/logger/config-serializer.spec.js
+++ b/test/logger/config-serializer.spec.ts
@@ -1,4 +1,4 @@
-const configSerializer = require('../../lib/logger/config-serializer');
+import configSerializer from '../../lib/logger/config-serializer';
 
 describe('logger/config-serializer', () => {
   it('redacts sensitive fields', () => {
diff --git a/test/logger/err-serializer.spec.js b/test/logger/err-serializer.spec.ts
similarity index 100%
rename from test/logger/err-serializer.spec.js
rename to test/logger/err-serializer.spec.ts
diff --git a/yarn.lock b/yarn.lock
index aeda3ad1fd..61db0c3133 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1354,6 +1354,11 @@
   resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.5.tgz#9da44ed75571999b65c37b60c9b2b88db54c585d"
   integrity sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==
 
+"@types/traverse@^0.6.32":
+  version "0.6.32"
+  resolved "https://registry.yarnpkg.com/@types/traverse/-/traverse-0.6.32.tgz#f9fdfa40cd4898deaa975a14511aec731de8235e"
+  integrity sha512-RBz2uRZVCXuMg93WD//aTS5B120QlT4lR/gL+935QtGsKHLS6sCtZBaKfWjIfk7ZXv/r8mtGbwjVIee6/3XTow==
+
 "@types/validator@10.11.3":
   version "10.11.3"
   resolved "https://registry.yarnpkg.com/@types/validator/-/validator-10.11.3.tgz#945799bef24a953c5bc02011ca8ad79331a3ef25"
-- 
GitLab