From f334c568a5039f88f72fb99ee25410a19ffbe501 Mon Sep 17 00:00:00 2001 From: Jamie Magee <JamieMagee@users.noreply.github.com> Date: Mon, 15 Jul 2019 11:04:05 +0200 Subject: [PATCH] feat(typescript): convert logger to typescript (#3671) --- .eslintrc.js | 1 + lib/config/decrypt.js | 1 + lib/config/file.js | 1 + lib/config/index.js | 3 +- lib/config/migrate-validate.js | 1 + lib/config/migration.js | 1 + lib/config/presets.js | 1 + lib/datasource/cargo/index.js | 1 + lib/datasource/dart/index.js | 1 + lib/datasource/docker/index.js | 1 + lib/datasource/git-tags/index.js | 1 + lib/datasource/github/index.js | 1 + lib/datasource/gitlab/index.js | 1 + lib/datasource/go/index.js | 1 + lib/datasource/gradle-version/index.js | 1 + lib/datasource/hex/index.js | 1 + lib/datasource/index.js | 1 + lib/datasource/maven/index.js | 1 + lib/datasource/maven/util.js | 1 + lib/datasource/npm/get.js | 1 + lib/datasource/npm/npmrc.js | 1 + lib/datasource/npm/presets.js | 2 + lib/datasource/nuget/index.js | 1 + lib/datasource/nuget/v2.js | 1 + lib/datasource/nuget/v3.js | 1 + lib/datasource/orb/index.js | 1 + lib/datasource/packagist/index.js | 1 + lib/datasource/pypi/index.js | 1 + lib/datasource/ruby-version/index.js | 1 + lib/datasource/rubygems/get-rubygems-org.js | 1 + lib/datasource/rubygems/get.js | 1 + lib/datasource/rubygems/retriable.js | 1 + lib/datasource/sbt/index.js | 1 + lib/datasource/terraform/index.js | 1 + lib/logger/__mocks__/index.ts | 19 ++++ lib/logger/cmd-serializer.js | 2 +- lib/logger/index.js | 82 ---------------- lib/logger/index.ts | 93 +++++++++++++++++++ .../{pretty-stdout.js => pretty-stdout.ts} | 57 ++++++------ lib/manager/ansible/extract.js | 1 + lib/manager/ansible/update.js | 1 + lib/manager/bazel/extract.js | 1 + lib/manager/bazel/update.js | 1 + lib/manager/buildkite/extract.js | 1 + lib/manager/buildkite/update.js | 2 + lib/manager/bundler/artifacts.js | 1 + lib/manager/bundler/extract.js | 1 + lib/manager/bundler/update.js | 2 + lib/manager/cargo/artifacts.js | 1 + lib/manager/cargo/extract.js | 1 + lib/manager/cargo/update.js | 1 + lib/manager/circleci/extract.js | 1 + lib/manager/circleci/update.js | 1 + lib/manager/composer/artifacts.js | 1 + lib/manager/composer/extract.js | 1 + lib/manager/composer/range.js | 2 + lib/manager/docker-compose/extract.js | 1 + lib/manager/docker-compose/update.js | 1 + lib/manager/dockerfile/extract.js | 2 + lib/manager/dockerfile/update.js | 2 + lib/manager/github-actions/extract.js | 1 + lib/manager/github-actions/update.js | 1 + lib/manager/gitlabci-include/update.js | 1 + lib/manager/gitlabci/extract.js | 1 + lib/manager/gitlabci/update.js | 1 + lib/manager/gomod/artifacts.js | 1 + lib/manager/gomod/extract.js | 1 + lib/manager/gomod/update.js | 1 + lib/manager/gradle-wrapper/extract.js | 1 + lib/manager/gradle-wrapper/update.js | 1 + lib/manager/gradle/gradle-updates-report.js | 1 + lib/manager/gradle/index.js | 1 + lib/manager/homebrew/extract.js | 2 + lib/manager/homebrew/update.js | 1 + lib/manager/kubernetes/extract.js | 1 + lib/manager/kubernetes/update.js | 1 + lib/manager/maven/extract.js | 1 + lib/manager/meteor/extract.js | 2 + lib/manager/meteor/update.js | 2 + lib/manager/npm/extract/index.js | 1 + lib/manager/npm/extract/locked-versions.js | 1 + lib/manager/npm/extract/monorepo.js | 1 + lib/manager/npm/extract/npm.js | 2 + lib/manager/npm/extract/yarn.js | 1 + lib/manager/npm/post-update/index.js | 2 +- lib/manager/npm/post-update/lerna.js | 1 + lib/manager/npm/post-update/npm.js | 1 + lib/manager/npm/post-update/pnpm.js | 1 + lib/manager/npm/post-update/yarn.js | 1 + lib/manager/npm/range.js | 1 + lib/manager/npm/update.js | 1 + lib/manager/nuget/extract.js | 1 + lib/manager/nuget/update.js | 2 + lib/manager/nvm/update.js | 2 + lib/manager/pip_requirements/extract.js | 1 + lib/manager/pip_requirements/update.js | 1 + lib/manager/pip_setup/extract.js | 1 + lib/manager/pipenv/artifacts.js | 1 + lib/manager/pipenv/extract.js | 1 + lib/manager/pipenv/update.js | 1 + lib/manager/poetry/artifacts.js | 2 + lib/manager/poetry/extract.js | 1 + lib/manager/poetry/update.js | 2 + lib/manager/pub/extract.js | 1 + lib/manager/ruby-version/extract.js | 1 + lib/manager/ruby-version/update.js | 2 + lib/manager/terraform/extract.js | 1 + lib/manager/terraform/update.js | 2 + lib/manager/travis/package.js | 1 + lib/manager/travis/update.js | 1 + lib/platform/azure/azure-helper.ts | 1 + lib/platform/azure/index.ts | 1 + lib/platform/bitbucket-server/index.ts | 1 + lib/platform/bitbucket/index.ts | 1 + lib/platform/git/storage.ts | 1 + lib/platform/github/gh-got-wrapper.ts | 1 + lib/platform/github/index.ts | 1 + lib/platform/gitlab/gl-got-wrapper.ts | 1 + lib/platform/gitlab/index.ts | 1 + lib/platform/index.ts | 1 + lib/types.d.ts | 21 +---- lib/util/got/auth.js | 1 + lib/util/got/host-rules.js | 1 + lib/util/got/stats.js | 1 + lib/util/host-rules.ts | 1 + lib/util/ignore.js | 2 + lib/util/package-rules.js | 1 + lib/versioning/composer/index.js | 1 + lib/versioning/index.js | 1 + lib/versioning/npm/range.js | 1 + lib/versioning/pep440/range.js | 1 + lib/versioning/ruby/index.js | 1 + lib/versioning/ruby/range.js | 1 + lib/versioning/ruby/strategies/bump.js | 1 + lib/workers/branch/automerge.js | 2 + lib/workers/branch/check-existing.js | 2 + lib/workers/branch/commit.js | 1 + lib/workers/branch/get-updated.js | 1 + lib/workers/branch/index.js | 3 +- lib/workers/branch/parent.js | 1 + lib/workers/branch/schedule.js | 1 + lib/workers/branch/status-checks.js | 1 + lib/workers/global/autodiscover.js | 1 + lib/workers/global/cache.js | 1 + lib/workers/global/index.js | 5 +- lib/workers/pr/changelog/index.js | 1 + lib/workers/pr/changelog/release-notes.js | 1 + lib/workers/pr/changelog/source-github.js | 1 + lib/workers/pr/index.js | 1 + lib/workers/pr/pr-body.js | 1 + lib/workers/repository/error-config.js | 1 + lib/workers/repository/error.js | 12 +-- lib/workers/repository/extract/file-match.js | 1 + lib/workers/repository/extract/index.js | 1 + .../repository/extract/manager-files.js | 2 + lib/workers/repository/finalise/prune.js | 2 + lib/workers/repository/finalise/validate.js | 3 +- lib/workers/repository/index.js | 6 +- lib/workers/repository/init/base.js | 2 + lib/workers/repository/init/config.js | 1 + lib/workers/repository/init/flatten.js | 1 + lib/workers/repository/init/index.js | 1 + lib/workers/repository/init/semantic.js | 1 + lib/workers/repository/init/vulnerability.js | 1 + lib/workers/repository/master-issue.js | 1 + .../repository/onboarding/branch/check.js | 1 + .../repository/onboarding/branch/config.js | 1 + .../repository/onboarding/branch/create.js | 1 + .../repository/onboarding/branch/index.js | 1 + .../repository/onboarding/branch/rebase.js | 1 + .../onboarding/pr/config-description.js | 1 + .../onboarding/pr/errors-warnings.js | 1 + lib/workers/repository/onboarding/pr/index.js | 1 + .../repository/onboarding/pr/pr-list.js | 1 + lib/workers/repository/process/deprecated.js | 2 + .../repository/process/extract-update.js | 1 + lib/workers/repository/process/fetch.js | 1 + lib/workers/repository/process/index.js | 1 + lib/workers/repository/process/limits.js | 1 + .../repository/process/lookup/filter.js | 1 + .../repository/process/lookup/index.js | 1 + .../repository/process/lookup/rollback.js | 1 + lib/workers/repository/process/sort.js | 2 + lib/workers/repository/process/write.js | 1 + lib/workers/repository/updates/branchify.js | 5 +- lib/workers/repository/updates/generate.js | 1 + test/datasource/maven.spec.js | 3 - test/datasource/sbt/index.spec.js | 3 - test/globals.js | 2 +- ...pec.js.snap => pretty-stdout.spec.ts.snap} | 6 ++ test/logger/_fixtures/index.js | 11 --- test/logger/index.spec.js | 32 ------- test/logger/index.spec.ts | 26 ++++++ ...y-stdout.spec.js => pretty-stdout.spec.ts} | 39 +++++--- test/manager/gradle/index.spec.js | 3 - test/workers/repository/error.spec.js | 2 +- tsconfig.json | 2 +- 197 files changed, 423 insertions(+), 215 deletions(-) create mode 100644 lib/logger/__mocks__/index.ts delete mode 100644 lib/logger/index.js create mode 100644 lib/logger/index.ts rename lib/logger/{pretty-stdout.js => pretty-stdout.ts} (68%) rename test/logger/__snapshots__/{pretty-stdout.spec.js.snap => pretty-stdout.spec.ts.snap} (51%) delete mode 100644 test/logger/_fixtures/index.js delete mode 100644 test/logger/index.spec.js create mode 100644 test/logger/index.spec.ts rename test/logger/{pretty-stdout.spec.js => pretty-stdout.spec.ts} (50%) diff --git a/.eslintrc.js b/.eslintrc.js index 33397a5140..104c5bed6e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,6 +1,7 @@ module.exports = { env: { node: true, + jest: true, }, extends: [ 'plugin:promise/recommended', diff --git a/lib/config/decrypt.js b/lib/config/decrypt.js index c3c9f5667e..8003289316 100644 --- a/lib/config/decrypt.js +++ b/lib/config/decrypt.js @@ -1,5 +1,6 @@ const is = require('@sindresorhus/is'); const crypto = require('crypto'); +const { logger } = require('../logger'); const { maskToken } = require('../util/mask'); module.exports = { diff --git a/lib/config/file.js b/lib/config/file.js index 83c1a70a36..5dbda4be65 100644 --- a/lib/config/file.js +++ b/lib/config/file.js @@ -1,4 +1,5 @@ const path = require('path'); +const { logger } = require('../logger'); const { migrateConfig } = require('./migration'); module.exports = { diff --git a/lib/config/index.js b/lib/config/index.js index 27a05b485c..09f97e7edf 100644 --- a/lib/config/index.js +++ b/lib/config/index.js @@ -1,3 +1,4 @@ +const { logger, levels } = require('../logger'); const definitions = require('./definitions'); const defaultsParser = require('./defaults'); @@ -55,7 +56,7 @@ async function parseConfigs(env, argv) { } // Set log level - logger.levels('stdout', config.logLevel); + levels('stdout', config.logLevel); // Add file logger // istanbul ignore if diff --git a/lib/config/migrate-validate.js b/lib/config/migrate-validate.js index 1e9e7599ff..772d02841c 100644 --- a/lib/config/migrate-validate.js +++ b/lib/config/migrate-validate.js @@ -1,4 +1,5 @@ const is = require('@sindresorhus/is'); +const { logger } = require('../logger'); const configMigration = require('./migration'); const configMassage = require('./massage'); const configValidation = require('./validation'); diff --git a/lib/config/migration.js b/lib/config/migration.js index 868dd85986..bc4d7175b6 100644 --- a/lib/config/migration.js +++ b/lib/config/migration.js @@ -1,5 +1,6 @@ const is = require('@sindresorhus/is'); const later = require('later'); +const { logger } = require('../logger'); const options = require('./definitions').getOptions(); const clone = input => JSON.parse(JSON.stringify(input)); diff --git a/lib/config/presets.js b/lib/config/presets.js index 6ddb28750b..f8df3b6487 100644 --- a/lib/config/presets.js +++ b/lib/config/presets.js @@ -1,4 +1,5 @@ const is = require('@sindresorhus/is'); +const { logger } = require('../logger'); const configParser = require('./index'); const massage = require('./massage'); const migration = require('./migration'); diff --git a/lib/datasource/cargo/index.js b/lib/datasource/cargo/index.js index f23a15cc64..ccda70e2e9 100644 --- a/lib/datasource/cargo/index.js +++ b/lib/datasource/cargo/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const got = require('../../util/got'); module.exports = { diff --git a/lib/datasource/dart/index.js b/lib/datasource/dart/index.js index 40e5ce04de..a8b64f54bb 100644 --- a/lib/datasource/dart/index.js +++ b/lib/datasource/dart/index.js @@ -1,4 +1,5 @@ const got = require('../../util/got'); +const { logger } = require('../../logger'); async function getPkgReleases({ lookupName }) { let result = null; diff --git a/lib/datasource/docker/index.js b/lib/datasource/docker/index.js index b3c181aac2..5685d7e09f 100644 --- a/lib/datasource/docker/index.js +++ b/lib/datasource/docker/index.js @@ -3,6 +3,7 @@ const URL = require('url'); const is = require('@sindresorhus/is'); const parseLinkHeader = require('parse-link-header'); const wwwAuthenticate = require('www-authenticate'); +const { logger } = require('../../logger'); const got = require('../../util/got'); const hostRules = require('../../util/host-rules'); diff --git a/lib/datasource/git-tags/index.js b/lib/datasource/git-tags/index.js index d6374e1b13..223e356c28 100644 --- a/lib/datasource/git-tags/index.js +++ b/lib/datasource/git-tags/index.js @@ -3,6 +3,7 @@ const semver = require('../../versioning/semver'); const cacheNamespace = 'git-tags'; const cacheMinutes = 10; +const { logger } = require('../../logger'); // git will prompt for known hosts or passwords, unless we activate BatchMode process.env.GIT_SSH_COMMAND = 'ssh -o BatchMode=yes'; diff --git a/lib/datasource/github/index.js b/lib/datasource/github/index.js index aef7ae9b67..e88e9cfc80 100644 --- a/lib/datasource/github/index.js +++ b/lib/datasource/github/index.js @@ -1,5 +1,6 @@ import ghGot from '../../platform/github/gh-got-wrapper'; +const { logger } = require('../../logger'); const got = require('../../util/got'); module.exports = { diff --git a/lib/datasource/gitlab/index.js b/lib/datasource/gitlab/index.js index d037c0eaa6..048071a393 100644 --- a/lib/datasource/gitlab/index.js +++ b/lib/datasource/gitlab/index.js @@ -1,6 +1,7 @@ const is = require('@sindresorhus/is'); const glGot = require('../../platform/gitlab/gl-got-wrapper').api.get; +const { logger } = require('../../logger'); module.exports = { getPreset, diff --git a/lib/datasource/go/index.js b/lib/datasource/go/index.js index c1d541a026..1b838a3a42 100644 --- a/lib/datasource/go/index.js +++ b/lib/datasource/go/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const got = require('../../util/got'); const github = require('../github'); diff --git a/lib/datasource/gradle-version/index.js b/lib/datasource/gradle-version/index.js index 9143cfd2b6..ae6fc021c1 100644 --- a/lib/datasource/gradle-version/index.js +++ b/lib/datasource/gradle-version/index.js @@ -1,4 +1,5 @@ const { coerce } = require('semver'); +const { logger } = require('../../logger'); const got = require('../../util/got'); module.exports = { diff --git a/lib/datasource/hex/index.js b/lib/datasource/hex/index.js index 96f3d6cd7c..7f5b7ece41 100644 --- a/lib/datasource/hex/index.js +++ b/lib/datasource/hex/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const got = require('../../util/got'); module.exports = { diff --git a/lib/datasource/index.js b/lib/datasource/index.js index d6a0c3060d..6400ed8bae 100644 --- a/lib/datasource/index.js +++ b/lib/datasource/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../logger'); const { addMetaData } = require('./metadata'); const versioning = require('../versioning'); diff --git a/lib/datasource/maven/index.js b/lib/datasource/maven/index.js index bba728d321..6f86f9e0cb 100644 --- a/lib/datasource/maven/index.js +++ b/lib/datasource/maven/index.js @@ -2,6 +2,7 @@ const url = require('url'); const fs = require('fs-extra'); const { XmlDocument } = require('xmldoc'); const is = require('@sindresorhus/is'); +const { logger } = require('../../logger'); const { compare } = require('../../versioning/maven/compare'); const { containsPlaceholder } = require('../../manager/maven/extract'); diff --git a/lib/datasource/maven/util.js b/lib/datasource/maven/util.js index 5e9ea3204d..171d3576c2 100644 --- a/lib/datasource/maven/util.js +++ b/lib/datasource/maven/util.js @@ -1,4 +1,5 @@ const got = require('../../util/got'); +const { logger } = require('../../logger'); module.exports = { downloadHttpProtocol, diff --git a/lib/datasource/npm/get.js b/lib/datasource/npm/get.js index 1f2943d7f7..a3c5f77733 100644 --- a/lib/datasource/npm/get.js +++ b/lib/datasource/npm/get.js @@ -4,6 +4,7 @@ const getRegistryUrl = require('registry-auth-token/registry-url'); const registryAuthToken = require('registry-auth-token'); const parse = require('github-url-from-git'); const { isBase64 } = require('validator'); +const { logger } = require('../../logger'); const got = require('../../util/got'); const hostRules = require('../../util/host-rules'); diff --git a/lib/datasource/npm/npmrc.js b/lib/datasource/npm/npmrc.js index 05f59c1a0f..bd33b9000d 100644 --- a/lib/datasource/npm/npmrc.js +++ b/lib/datasource/npm/npmrc.js @@ -1,6 +1,7 @@ const is = require('@sindresorhus/is'); const ini = require('ini'); const { isBase64 } = require('validator'); +const { logger } = require('../../logger'); let npmrc = null; let npmrcRaw; diff --git a/lib/datasource/npm/presets.js b/lib/datasource/npm/presets.js index 6f1d9121ab..bcab3aa0bb 100644 --- a/lib/datasource/npm/presets.js +++ b/lib/datasource/npm/presets.js @@ -1,3 +1,5 @@ +import { logger } from '../../logger'; + const { getDependency } = require('./get'); module.exports = { diff --git a/lib/datasource/nuget/index.js b/lib/datasource/nuget/index.js index 09ed6a8557..b4399c564c 100644 --- a/lib/datasource/nuget/index.js +++ b/lib/datasource/nuget/index.js @@ -1,4 +1,5 @@ const urlApi = require('url'); +const { logger } = require('../../logger'); const v2 = require('./v2'); const v3 = require('./v3'); diff --git a/lib/datasource/nuget/v2.js b/lib/datasource/nuget/v2.js index d959e1a4e3..aed75a5f44 100644 --- a/lib/datasource/nuget/v2.js +++ b/lib/datasource/nuget/v2.js @@ -1,5 +1,6 @@ const parse = require('github-url-from-git'); const { XmlDocument } = require('xmldoc'); +const { logger } = require('../../logger'); const got = require('../../util/got'); module.exports = { diff --git a/lib/datasource/nuget/v3.js b/lib/datasource/nuget/v3.js index 6068ab2009..18965f52fa 100644 --- a/lib/datasource/nuget/v3.js +++ b/lib/datasource/nuget/v3.js @@ -1,6 +1,7 @@ const parse = require('github-url-from-git'); const semver = require('semver'); const { XmlDocument } = require('xmldoc'); +const { logger } = require('../../logger'); const got = require('../../util/got'); module.exports = { diff --git a/lib/datasource/orb/index.js b/lib/datasource/orb/index.js index 33cd69481a..0c912d501f 100644 --- a/lib/datasource/orb/index.js +++ b/lib/datasource/orb/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const got = require('../../util/got'); module.exports = { diff --git a/lib/datasource/packagist/index.js b/lib/datasource/packagist/index.js index a0c1bd5919..42772c6c4e 100644 --- a/lib/datasource/packagist/index.js +++ b/lib/datasource/packagist/index.js @@ -3,6 +3,7 @@ const URL = require('url'); const delay = require('delay'); const parse = require('github-url-from-git'); const pAll = require('p-all'); +const { logger } = require('../../logger'); const got = require('../../util/got'); const hostRules = require('../../util/host-rules'); diff --git a/lib/datasource/pypi/index.js b/lib/datasource/pypi/index.js index 80932eb665..63cc856223 100644 --- a/lib/datasource/pypi/index.js +++ b/lib/datasource/pypi/index.js @@ -1,6 +1,7 @@ const url = require('url'); const is = require('@sindresorhus/is'); const { parse } = require('node-html-parser'); +const { logger } = require('../../logger'); const { matches } = require('../../versioning/pep440'); const got = require('../../util/got'); diff --git a/lib/datasource/ruby-version/index.js b/lib/datasource/ruby-version/index.js index a32573611c..03598f3440 100644 --- a/lib/datasource/ruby-version/index.js +++ b/lib/datasource/ruby-version/index.js @@ -1,4 +1,5 @@ const { parse } = require('node-html-parser'); +const { logger } = require('../../logger'); const got = require('../../util/got'); const { isVersion } = require('../../versioning/ruby'); diff --git a/lib/datasource/rubygems/get-rubygems-org.js b/lib/datasource/rubygems/get-rubygems-org.js index 032818bdaa..25eea2834d 100644 --- a/lib/datasource/rubygems/get-rubygems-org.js +++ b/lib/datasource/rubygems/get-rubygems-org.js @@ -1,4 +1,5 @@ const got = require('../../util/got'); +const { logger } = require('../../logger'); module.exports = { getRubygemsOrgDependency, diff --git a/lib/datasource/rubygems/get.js b/lib/datasource/rubygems/get.js index efce817185..0e2c869bc9 100644 --- a/lib/datasource/rubygems/get.js +++ b/lib/datasource/rubygems/get.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const got = require('../../util/got'); const { maskToken } = require('../../util/mask'); const retriable = require('./retriable'); diff --git a/lib/datasource/rubygems/retriable.js b/lib/datasource/rubygems/retriable.js index 217609f196..dea324b773 100644 --- a/lib/datasource/rubygems/retriable.js +++ b/lib/datasource/rubygems/retriable.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { UNAUTHORIZED, FORBIDDEN, diff --git a/lib/datasource/sbt/index.js b/lib/datasource/sbt/index.js index 2bd99e71f5..9f8d442dd6 100644 --- a/lib/datasource/sbt/index.js +++ b/lib/datasource/sbt/index.js @@ -1,6 +1,7 @@ const { compare } = require('../../versioning/maven/compare'); const { downloadHttpProtocol } = require('../maven/util'); const { parseIndexDir, SBT_PLUGINS_REPO } = require('./util'); +const { logger } = require('../../logger'); async function getPkgReleases(config) { const { lookupName, depType } = config; diff --git a/lib/datasource/terraform/index.js b/lib/datasource/terraform/index.js index b9c7b83bc4..0a378b4f02 100644 --- a/lib/datasource/terraform/index.js +++ b/lib/datasource/terraform/index.js @@ -1,5 +1,6 @@ const parse = require('github-url-from-git'); const is = require('@sindresorhus/is'); +const { logger } = require('../../logger'); const got = require('../../util/got'); diff --git a/lib/logger/__mocks__/index.ts b/lib/logger/__mocks__/index.ts new file mode 100644 index 0000000000..2e09087795 --- /dev/null +++ b/lib/logger/__mocks__/index.ts @@ -0,0 +1,19 @@ +const loggerLevels: string[] = [ + 'trace', + 'debug', + 'info', + 'warn', + 'error', + 'fatal', + 'child', +]; +const logger: any = {}; + +loggerLevels.forEach(k => { + logger[k] = jest.fn(); +}); + +export const setMeta = jest.fn(); +export const levels = jest.fn(); + +export { logger }; diff --git a/lib/logger/cmd-serializer.js b/lib/logger/cmd-serializer.js index f3fd49fb49..02950a6a96 100644 --- a/lib/logger/cmd-serializer.js +++ b/lib/logger/cmd-serializer.js @@ -1,4 +1,4 @@ -module.exports = cmdSerializer; +export default cmdSerializer; // istanbul ignore next function cmdSerializer(cmd) { diff --git a/lib/logger/index.js b/lib/logger/index.js deleted file mode 100644 index 2cc943442e..0000000000 --- a/lib/logger/index.js +++ /dev/null @@ -1,82 +0,0 @@ -const is = require('@sindresorhus/is'); -const bunyan = require('bunyan'); -const PrettyStdout = require('./pretty-stdout').RenovateStream; -const configSerializer = require('./config-serializer'); -const errSerializer = require('./err-serializer'); -const cmdSerializer = require('./cmd-serializer'); - -let bunyanLogger; -let meta = {}; - -function initLogger() { - const stdout = { - name: 'stdout', - level: process.env.LOG_LEVEL || 'info', - stream: process.stdout, - }; - - if (process.env.LOG_FORMAT !== 'json') { - const prettyStdOut = new PrettyStdout(); - prettyStdOut.pipe(process.stdout); - stdout.type = 'raw'; - stdout.stream = prettyStdOut; - } - - bunyanLogger = bunyan.createLogger({ - name: 'renovate', - serializers: { - body: configSerializer, - cmd: cmdSerializer, - config: configSerializer, - migratedConfig: configSerializer, - originalConfig: configSerializer, - presetConfig: configSerializer, - err: errSerializer, - }, - streams: [stdout], - }); - - global.logger = {}; - - const logFunctions = [ - 'trace', - 'debug', - 'info', - 'warn', - 'error', - 'fatal', - 'child', - ]; - logFunctions.forEach(x => { - global.logger[x] = (p1, p2) => { - global.renovateError = - global.renovateError || x === 'error' || x === 'fatal'; - if (p2) { - // meta and msg provided - return bunyanLogger[x]({ ...meta, ...p1 }, p2); - } - if (is.string(p1)) { - // only message provided - return bunyanLogger[x](meta, p1); - } - // only meta provided - return bunyanLogger[x]({ ...meta, ...p1 }); - }; - }); - global.logger.master = bunyanLogger; - global.logger.addStream = stream => { - bunyanLogger.addStream(stream); - }; - global.logger.levels = (stream, level) => { - bunyanLogger.levels(stream, level); - }; - - // setMeta overrides existing meta - global.logger.setMeta = function setMeta(obj) { - meta = { ...obj }; - }; -} - -module.exports = { - initLogger, -}; diff --git a/lib/logger/index.ts b/lib/logger/index.ts new file mode 100644 index 0000000000..7d44d27b98 --- /dev/null +++ b/lib/logger/index.ts @@ -0,0 +1,93 @@ +import * as bunyan from 'bunyan'; + +import is from '@sindresorhus/is'; +import { RenovateStream } from './pretty-stdout'; +import configSerializer from './config-serializer'; +import errSerializer from './err-serializer'; +import cmdSerializer from './cmd-serializer'; + +let meta = {}; + +const stdout: bunyan.Stream = { + name: 'stdout', + level: (process.env.LOG_LEVEL as bunyan.LogLevel) || 'info', + stream: process.stdout, +}; + +if (process.env.LOG_FORMAT !== 'json') { + // TODO: typings + const prettyStdOut = new RenovateStream() as any; + prettyStdOut.pipe(process.stdout); + stdout.stream = prettyStdOut; + stdout.type = 'raw'; +} + +const bunyanLogger = bunyan.createLogger({ + name: 'renovate', + serializers: { + body: configSerializer, + cmd: cmdSerializer, + config: configSerializer, + migratedConfig: configSerializer, + originalConfig: configSerializer, + presetConfig: configSerializer, + err: errSerializer, + }, + streams: [stdout], +}); + +const logFactory = (level: bunyan.LogLevelString): any => { + return (p1: any, p2: any): void => { + global.renovateError = + global.renovateError || level === 'error' || level === 'fatal'; + if (p2) { + // meta and msg provided + bunyanLogger[level]({ ...meta, ...p1 }, p2); + } else if (is.string(p1)) { + // only message provided + bunyanLogger[level](meta, p1); + } else { + // only meta provided + bunyanLogger[level](meta, p1); + } + }; +}; + +const loggerLevels: bunyan.LogLevelString[] = [ + 'trace', + 'debug', + 'info', + 'warn', + 'error', + 'fatal', +]; + +interface Logger { + trace(msg: string): void; + trace(meta: Record<string, any>, msg?: string): void; + debug(msg: string): void; + debug(meta: Record<string, any>, msg?: string): void; + info(msg: string): void; + info(meta: Record<string, any>, msg?: string): void; + warn(msg: string): void; + warn(meta: Record<string, any>, msg?: string): void; + error(msg: string): void; + error(meta: Record<string, any>, msg?: string): void; + fatal(msg: string): void; + fatal(meta: Record<string, any>, msg?: string): void; +} + +export const logger: Logger = {} as any; + +loggerLevels.forEach(loggerLevel => { + logger[loggerLevel] = logFactory(loggerLevel); +}); + +// setMeta overrides existing meta +export function setMeta(obj: any) { + meta = { ...obj }; +} + +export function levels(name: string, level: bunyan.LogLevel): void { + bunyanLogger.levels(name, level); +} diff --git a/lib/logger/pretty-stdout.js b/lib/logger/pretty-stdout.ts similarity index 68% rename from lib/logger/pretty-stdout.js rename to lib/logger/pretty-stdout.ts index a3b5db5639..676c1c345a 100644 --- a/lib/logger/pretty-stdout.js +++ b/lib/logger/pretty-stdout.ts @@ -1,10 +1,10 @@ // Code originally derived from https://github.com/hadfieldn/node-bunyan-prettystream but since heavily edited // Neither fork nor original repo appear to be maintained -const { Stream } = require('stream'); -const util = require('util'); -const chalk = require('chalk'); -const stringify = require('json-stringify-pretty-compact'); +import * as util from 'util'; +import { Stream } from 'stream'; +import chalk from 'chalk'; +import stringify from 'json-stringify-pretty-compact'; const bunyanFields = [ 'name', @@ -25,7 +25,7 @@ const metaFields = [ 'branch', ]; -const levels = { +const levels: Record<number, string> = { 10: chalk.gray('TRACE'), 20: chalk.blue('DEBUG'), 30: chalk.green(' INFO'), @@ -34,12 +34,12 @@ const levels = { 60: chalk.bgRed('FATAL'), }; -function indent(str, leading = false) { +export function indent(str: string, leading = false) { const prefix = leading ? ' ' : ''; return prefix + str.split(/\r?\n/).join('\n '); } -function getMeta(rec) { +export function getMeta(rec: BunyanRecord) { if (!rec) { return ''; } @@ -55,7 +55,7 @@ function getMeta(rec) { return chalk.gray(res); } -function getDetails(rec) { +export function getDetails(rec: BunyanRecord) { if (!rec) { return ''; } @@ -75,8 +75,7 @@ function getDetails(rec) { .join(',\n')}\n`; } -// istanbul ignore next -function formatRecord(rec) { +export function formatRecord(rec: BunyanRecord) { const level = levels[rec.level]; const msg = `${indent(rec.msg)}`; const meta = getMeta(rec); @@ -84,24 +83,26 @@ function formatRecord(rec) { return util.format('%s: %s%s\n%s', level, msg, meta, details); } -function RenovateStream() { - this.readable = true; - this.writable = true; - Stream.call(this); -} +export class RenovateStream extends Stream { + readable: boolean; -util.inherits(RenovateStream, Stream); + writable: boolean; -// istanbul ignore next -RenovateStream.prototype.write = function write(data) { - this.emit('data', formatRecord(data)); - return true; -}; + constructor() { + super(); + this.readable = true; + this.writable = true; + } -module.exports = { - indent, - getMeta, - getDetails, - formatRecord, - RenovateStream, -}; + // istanbul ignore next + write(data: BunyanRecord) { + this.emit('data', formatRecord(data)); + return true; + } +} + +export interface BunyanRecord extends Record<string, any> { + level: number; + msg: string; + module?: string; +} diff --git a/lib/manager/ansible/extract.js b/lib/manager/ansible/extract.js index ea3fb83f33..78e5951231 100644 --- a/lib/manager/ansible/extract.js +++ b/lib/manager/ansible/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getDep } = require('../dockerfile/extract'); module.exports = { diff --git a/lib/manager/ansible/update.js b/lib/manager/ansible/update.js index 3a46d71f52..3f7640961a 100644 --- a/lib/manager/ansible/update.js +++ b/lib/manager/ansible/update.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getNewFrom } = require('../dockerfile/update'); module.exports = { diff --git a/lib/manager/bazel/extract.js b/lib/manager/bazel/extract.js index 37e8c8f95d..28c709ef7b 100644 --- a/lib/manager/bazel/extract.js +++ b/lib/manager/bazel/extract.js @@ -1,6 +1,7 @@ /* eslint no-plusplus: 0 default-case: 0 */ const parse = require('github-url-from-git'); const URL = require('url'); +const { logger } = require('../../logger'); module.exports = { extractPackageFile, diff --git a/lib/manager/bazel/update.js b/lib/manager/bazel/update.js index cb30ad022a..65c7bc31f3 100644 --- a/lib/manager/bazel/update.js +++ b/lib/manager/bazel/update.js @@ -1,5 +1,6 @@ const hasha = require('hasha'); const got = require('../../util/got'); +const { logger } = require('../../logger'); module.exports = { updateDependency, diff --git a/lib/manager/buildkite/extract.js b/lib/manager/buildkite/extract.js index 7fd482c027..c31963bdd1 100644 --- a/lib/manager/buildkite/extract.js +++ b/lib/manager/buildkite/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { isVersion } = require('../../versioning/semver'); module.exports = { diff --git a/lib/manager/buildkite/update.js b/lib/manager/buildkite/update.js index 8982473ca7..e5f80fc98d 100644 --- a/lib/manager/buildkite/update.js +++ b/lib/manager/buildkite/update.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { updateDependency, }; diff --git a/lib/manager/bundler/artifacts.js b/lib/manager/bundler/artifacts.js index 1dda3ad850..8a8574ffe0 100644 --- a/lib/manager/bundler/artifacts.js +++ b/lib/manager/bundler/artifacts.js @@ -2,6 +2,7 @@ const { exec } = require('child-process-promise'); const fs = require('fs-extra'); const upath = require('upath'); const { getChildProcessEnv } = require('../../util/env'); +const { logger } = require('../../logger'); const { getPkgReleases } = require('../../datasource/docker'); const { diff --git a/lib/manager/bundler/extract.js b/lib/manager/bundler/extract.js index 2605811c6d..9346a3c13e 100644 --- a/lib/manager/bundler/extract.js +++ b/lib/manager/bundler/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { isValid } = require('../../versioning/ruby'); module.exports = { diff --git a/lib/manager/bundler/update.js b/lib/manager/bundler/update.js index 83a5f292fb..2cc14d7864 100644 --- a/lib/manager/bundler/update.js +++ b/lib/manager/bundler/update.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { updateDependency, }; diff --git a/lib/manager/cargo/artifacts.js b/lib/manager/cargo/artifacts.js index a05817fd96..66bc5ce483 100644 --- a/lib/manager/cargo/artifacts.js +++ b/lib/manager/cargo/artifacts.js @@ -3,6 +3,7 @@ const process = require('process'); const fs = require('fs-extra'); const { exec } = require('child-process-promise'); const { getChildProcessEnv } = require('../../util/env'); +const { logger } = require('../../logger'); module.exports = { updateArtifacts, diff --git a/lib/manager/cargo/extract.js b/lib/manager/cargo/extract.js index dbff79664b..e5af6d468a 100644 --- a/lib/manager/cargo/extract.js +++ b/lib/manager/cargo/extract.js @@ -1,4 +1,5 @@ const toml = require('toml'); +const { logger } = require('../../logger'); const semver = require('../../versioning/cargo'); module.exports = { diff --git a/lib/manager/cargo/update.js b/lib/manager/cargo/update.js index 49dd099788..0aeaaf3bb7 100644 --- a/lib/manager/cargo/update.js +++ b/lib/manager/cargo/update.js @@ -1,5 +1,6 @@ const _ = require('lodash'); const toml = require('toml'); +const { logger } = require('../../logger'); module.exports = { updateDependency, diff --git a/lib/manager/circleci/extract.js b/lib/manager/circleci/extract.js index c731c3d843..461a0fffcc 100644 --- a/lib/manager/circleci/extract.js +++ b/lib/manager/circleci/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getDep } = require('../dockerfile/extract'); module.exports = { diff --git a/lib/manager/circleci/update.js b/lib/manager/circleci/update.js index 11a38d888c..47c523f629 100644 --- a/lib/manager/circleci/update.js +++ b/lib/manager/circleci/update.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getNewFrom } = require('../dockerfile/update'); module.exports = { diff --git a/lib/manager/composer/artifacts.js b/lib/manager/composer/artifacts.js index 7d92fb4d62..9af1093280 100644 --- a/lib/manager/composer/artifacts.js +++ b/lib/manager/composer/artifacts.js @@ -3,6 +3,7 @@ const URL = require('url'); const { exec } = require('child-process-promise'); const fs = require('fs-extra'); const upath = require('upath'); +const { logger } = require('../../logger'); const hostRules = require('../../util/host-rules'); const { getChildProcessEnv } = require('../../util/env'); diff --git a/lib/manager/composer/extract.js b/lib/manager/composer/extract.js index 50f39c545d..a650d18f03 100644 --- a/lib/manager/composer/extract.js +++ b/lib/manager/composer/extract.js @@ -1,4 +1,5 @@ const is = require('@sindresorhus/is'); +const { logger } = require('../../logger'); const semverComposer = require('../../versioning/composer'); module.exports = { diff --git a/lib/manager/composer/range.js b/lib/manager/composer/range.js index a8e2d2e22a..0d935ecf98 100644 --- a/lib/manager/composer/range.js +++ b/lib/manager/composer/range.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { getRangeStrategy, }; diff --git a/lib/manager/docker-compose/extract.js b/lib/manager/docker-compose/extract.js index f0422c5698..aceaef115c 100644 --- a/lib/manager/docker-compose/extract.js +++ b/lib/manager/docker-compose/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getDep } = require('../dockerfile/extract'); module.exports = { diff --git a/lib/manager/docker-compose/update.js b/lib/manager/docker-compose/update.js index 8e8779633e..0d1f76ac87 100644 --- a/lib/manager/docker-compose/update.js +++ b/lib/manager/docker-compose/update.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getNewFrom } = require('../dockerfile/update'); module.exports = { diff --git a/lib/manager/dockerfile/extract.js b/lib/manager/dockerfile/extract.js index 4a7dba49f8..afd04dc132 100644 --- a/lib/manager/dockerfile/extract.js +++ b/lib/manager/dockerfile/extract.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { splitImageParts, getDep, diff --git a/lib/manager/dockerfile/update.js b/lib/manager/dockerfile/update.js index 23b8b19b13..2b9a55036a 100644 --- a/lib/manager/dockerfile/update.js +++ b/lib/manager/dockerfile/update.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { getNewFrom, updateDependency, diff --git a/lib/manager/github-actions/extract.js b/lib/manager/github-actions/extract.js index f4f1f6bc4d..6e04847e07 100644 --- a/lib/manager/github-actions/extract.js +++ b/lib/manager/github-actions/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getDep } = require('../dockerfile/extract'); module.exports = { diff --git a/lib/manager/github-actions/update.js b/lib/manager/github-actions/update.js index 00dcb6b9ca..eab5134103 100644 --- a/lib/manager/github-actions/update.js +++ b/lib/manager/github-actions/update.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getNewFrom } = require('../dockerfile/update'); module.exports = { diff --git a/lib/manager/gitlabci-include/update.js b/lib/manager/gitlabci-include/update.js index e8c4413eec..cce3b683ab 100644 --- a/lib/manager/gitlabci-include/update.js +++ b/lib/manager/gitlabci-include/update.js @@ -1,4 +1,5 @@ const YAWN = require('yawn-yaml/cjs'); +const { logger } = require('../../logger'); module.exports = { updateDependency, diff --git a/lib/manager/gitlabci/extract.js b/lib/manager/gitlabci/extract.js index 97c06a1b78..66dbe23221 100644 --- a/lib/manager/gitlabci/extract.js +++ b/lib/manager/gitlabci/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getDep } = require('../dockerfile/extract'); module.exports = { diff --git a/lib/manager/gitlabci/update.js b/lib/manager/gitlabci/update.js index 828dc08a67..734ac96838 100644 --- a/lib/manager/gitlabci/update.js +++ b/lib/manager/gitlabci/update.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getNewFrom } = require('../dockerfile/update'); module.exports = { diff --git a/lib/manager/gomod/artifacts.js b/lib/manager/gomod/artifacts.js index 620dc7bc3a..cdae934c3e 100644 --- a/lib/manager/gomod/artifacts.js +++ b/lib/manager/gomod/artifacts.js @@ -3,6 +3,7 @@ const fs = require('fs-extra'); const upath = require('upath'); const hostRules = require('../../util/host-rules'); const { getChildProcessEnv } = require('../../util/env'); +const { logger } = require('../../logger'); module.exports = { updateArtifacts, diff --git a/lib/manager/gomod/extract.js b/lib/manager/gomod/extract.js index f0b5a775b6..c8cd5b1e35 100644 --- a/lib/manager/gomod/extract.js +++ b/lib/manager/gomod/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { isVersion } = require('../../versioning/semver'); module.exports = { diff --git a/lib/manager/gomod/update.js b/lib/manager/gomod/update.js index 24b73fe50b..e6b0ca5230 100644 --- a/lib/manager/gomod/update.js +++ b/lib/manager/gomod/update.js @@ -1,4 +1,5 @@ const { DateTime } = require('luxon'); +const { logger } = require('../../logger'); module.exports = { updateDependency, diff --git a/lib/manager/gradle-wrapper/extract.js b/lib/manager/gradle-wrapper/extract.js index 3136142a8a..fb068307a0 100644 --- a/lib/manager/gradle-wrapper/extract.js +++ b/lib/manager/gradle-wrapper/extract.js @@ -1,4 +1,5 @@ const { coerce } = require('semver'); +const { logger } = require('../../logger'); module.exports = { extractPackageFile, diff --git a/lib/manager/gradle-wrapper/update.js b/lib/manager/gradle-wrapper/update.js index 171e604cb3..73427a22ba 100644 --- a/lib/manager/gradle-wrapper/update.js +++ b/lib/manager/gradle-wrapper/update.js @@ -1,4 +1,5 @@ const got = require('../../util/got'); +const { logger } = require('../../logger'); module.exports = { updateDependency, diff --git a/lib/manager/gradle/gradle-updates-report.js b/lib/manager/gradle/gradle-updates-report.js index 447eab196b..674db29ab8 100644 --- a/lib/manager/gradle/gradle-updates-report.js +++ b/lib/manager/gradle/gradle-updates-report.js @@ -1,5 +1,6 @@ const path = require('path'); const fs = require('fs-extra'); +const { logger } = require('../../logger'); const GRADLE_DEPENDENCY_REPORT_FILENAME = 'gradle-renovate-report.json'; diff --git a/lib/manager/gradle/index.js b/lib/manager/gradle/index.js index f1edaa0532..bfc1f8c43e 100644 --- a/lib/manager/gradle/index.js +++ b/lib/manager/gradle/index.js @@ -1,5 +1,6 @@ const { exec } = require('child-process-promise'); const fs = require('fs-extra'); +const { logger } = require('../../logger'); const gradle = require('./build-gradle'); const updatesReport = require('./gradle-updates-report'); diff --git a/lib/manager/homebrew/extract.js b/lib/manager/homebrew/extract.js index acd417bcd1..8f14dc12d0 100644 --- a/lib/manager/homebrew/extract.js +++ b/lib/manager/homebrew/extract.js @@ -1,6 +1,8 @@ const semver = require('../../versioning/semver'); const { skip, isSpace, removeComments } = require('./util'); +const { logger } = require('../../logger'); + module.exports = { extractPackageFile, parseUrlPath, diff --git a/lib/manager/homebrew/update.js b/lib/manager/homebrew/update.js index 1ce7ed43bc..89b8679674 100644 --- a/lib/manager/homebrew/update.js +++ b/lib/manager/homebrew/update.js @@ -3,6 +3,7 @@ const { coerce } = require('semver'); const { parseUrlPath } = require('./extract'); const { skip, isSpace, removeComments } = require('./util'); const got = require('../../util/got'); +const { logger } = require('../../logger'); module.exports = { updateDependency, diff --git a/lib/manager/kubernetes/extract.js b/lib/manager/kubernetes/extract.js index 0bcf24aeba..36391926d9 100644 --- a/lib/manager/kubernetes/extract.js +++ b/lib/manager/kubernetes/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getDep } = require('../dockerfile/extract'); module.exports = { diff --git a/lib/manager/kubernetes/update.js b/lib/manager/kubernetes/update.js index dc763631a7..e932d380c4 100644 --- a/lib/manager/kubernetes/update.js +++ b/lib/manager/kubernetes/update.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { getNewFrom } = require('../dockerfile/update'); module.exports = { diff --git a/lib/manager/maven/extract.js b/lib/manager/maven/extract.js index ce99fff75b..9d10255eab 100644 --- a/lib/manager/maven/extract.js +++ b/lib/manager/maven/extract.js @@ -1,6 +1,7 @@ const path = require('path'); const { XmlDocument } = require('xmldoc'); const { isValid } = require('../../versioning/maven'); +const { logger } = require('../../logger'); const DEFAULT_MAVEN_REPO = 'https://repo.maven.apache.org/maven2'; diff --git a/lib/manager/meteor/extract.js b/lib/manager/meteor/extract.js index 0769c8ed00..e85030876b 100644 --- a/lib/manager/meteor/extract.js +++ b/lib/manager/meteor/extract.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { extractPackageFile, }; diff --git a/lib/manager/meteor/update.js b/lib/manager/meteor/update.js index 16074f08f3..c23d67eb31 100644 --- a/lib/manager/meteor/update.js +++ b/lib/manager/meteor/update.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { updateDependency, }; diff --git a/lib/manager/npm/extract/index.js b/lib/manager/npm/extract/index.js index f5c3abe711..abbcb449a1 100644 --- a/lib/manager/npm/extract/index.js +++ b/lib/manager/npm/extract/index.js @@ -2,6 +2,7 @@ const fs = require('fs-extra'); const path = require('path'); const upath = require('upath'); const validateNpmPackageName = require('validate-npm-package-name'); +const { logger } = require('../../../logger'); const { getLockedVersions } = require('./locked-versions'); const { detectMonorepos } = require('./monorepo'); diff --git a/lib/manager/npm/extract/locked-versions.js b/lib/manager/npm/extract/locked-versions.js index 934f14fdc6..ad2a8a4c6f 100644 --- a/lib/manager/npm/extract/locked-versions.js +++ b/lib/manager/npm/extract/locked-versions.js @@ -1,4 +1,5 @@ const { valid } = require('semver'); +const { logger } = require('../../../logger'); const { getNpmLock } = require('./npm'); const { getYarnLock } = require('./yarn'); diff --git a/lib/manager/npm/extract/monorepo.js b/lib/manager/npm/extract/monorepo.js index a978511973..1f9cdbf112 100644 --- a/lib/manager/npm/extract/monorepo.js +++ b/lib/manager/npm/extract/monorepo.js @@ -2,6 +2,7 @@ const is = require('@sindresorhus/is'); const minimatch = require('minimatch'); const path = require('path'); const upath = require('upath'); +const { logger } = require('../../../logger'); module.exports = { detectMonorepos, diff --git a/lib/manager/npm/extract/npm.js b/lib/manager/npm/extract/npm.js index 045a8f5c3b..447683d2a8 100644 --- a/lib/manager/npm/extract/npm.js +++ b/lib/manager/npm/extract/npm.js @@ -1,3 +1,5 @@ +const { logger } = require('../../../logger'); + module.exports = { getNpmLock, }; diff --git a/lib/manager/npm/extract/yarn.js b/lib/manager/npm/extract/yarn.js index e5ae91eb51..b3dceef1f4 100644 --- a/lib/manager/npm/extract/yarn.js +++ b/lib/manager/npm/extract/yarn.js @@ -1,4 +1,5 @@ const yarnLockParser = require('@yarnpkg/lockfile'); +const { logger } = require('../../../logger'); module.exports = { getYarnLock, diff --git a/lib/manager/npm/post-update/index.js b/lib/manager/npm/post-update/index.js index 32ef316b82..97a62370af 100644 --- a/lib/manager/npm/post-update/index.js +++ b/lib/manager/npm/post-update/index.js @@ -2,7 +2,7 @@ const fs = require('fs-extra'); const path = require('path'); const upath = require('upath'); const is = require('@sindresorhus/is'); - +const { logger } = require('../../../logger'); const npm = require('./npm'); const lerna = require('./lerna'); const yarn = require('./yarn'); diff --git a/lib/manager/npm/post-update/lerna.js b/lib/manager/npm/post-update/lerna.js index 319f670c84..6794a2a703 100644 --- a/lib/manager/npm/post-update/lerna.js +++ b/lib/manager/npm/post-update/lerna.js @@ -1,4 +1,5 @@ const { exec } = require('child-process-promise'); +const { logger } = require('../../../logger'); module.exports = { generateLockFiles, diff --git a/lib/manager/npm/post-update/npm.js b/lib/manager/npm/post-update/npm.js index 500dbf34af..c92a99e2e2 100644 --- a/lib/manager/npm/post-update/npm.js +++ b/lib/manager/npm/post-update/npm.js @@ -2,6 +2,7 @@ const fs = require('fs-extra'); const upath = require('upath'); const { getInstalledPath } = require('get-installed-path'); const { exec } = require('child-process-promise'); +const { logger } = require('../../../logger'); module.exports = { generateLockFile, diff --git a/lib/manager/npm/post-update/pnpm.js b/lib/manager/npm/post-update/pnpm.js index 883c36c427..e5815ceba1 100644 --- a/lib/manager/npm/post-update/pnpm.js +++ b/lib/manager/npm/post-update/pnpm.js @@ -2,6 +2,7 @@ const fs = require('fs-extra'); const upath = require('upath'); const { getInstalledPath } = require('get-installed-path'); const { exec } = require('child-process-promise'); +const { logger } = require('../../../logger'); module.exports = { generateLockFile, diff --git a/lib/manager/npm/post-update/yarn.js b/lib/manager/npm/post-update/yarn.js index 6979ea9601..2c58a1711c 100644 --- a/lib/manager/npm/post-update/yarn.js +++ b/lib/manager/npm/post-update/yarn.js @@ -2,6 +2,7 @@ const fs = require('fs-extra'); const upath = require('upath'); const { getInstalledPath } = require('get-installed-path'); const { exec } = require('child-process-promise'); +const { logger } = require('../../../logger'); module.exports = { generateLockFile, diff --git a/lib/manager/npm/range.js b/lib/manager/npm/range.js index b71e73f1c1..89083aa749 100644 --- a/lib/manager/npm/range.js +++ b/lib/manager/npm/range.js @@ -1,4 +1,5 @@ const { parseRange } = require('semver-utils'); +const { logger } = require('../../logger'); module.exports = { getRangeStrategy, diff --git a/lib/manager/npm/update.js b/lib/manager/npm/update.js index bf81a6914b..8db1ea4f4f 100644 --- a/lib/manager/npm/update.js +++ b/lib/manager/npm/update.js @@ -1,5 +1,6 @@ const _ = require('lodash'); const semver = require('semver'); +const { logger } = require('../../logger'); module.exports = { updateDependency, diff --git a/lib/manager/nuget/extract.js b/lib/manager/nuget/extract.js index 47304f072d..0f7010bc38 100644 --- a/lib/manager/nuget/extract.js +++ b/lib/manager/nuget/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const versioning = require('../../versioning'); module.exports = { diff --git a/lib/manager/nuget/update.js b/lib/manager/nuget/update.js index 7def06d743..e0dc2edbc0 100644 --- a/lib/manager/nuget/update.js +++ b/lib/manager/nuget/update.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { updateDependency, }; diff --git a/lib/manager/nvm/update.js b/lib/manager/nvm/update.js index a9ecea5fe0..5de15329f5 100644 --- a/lib/manager/nvm/update.js +++ b/lib/manager/nvm/update.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { updateDependency, }; diff --git a/lib/manager/pip_requirements/extract.js b/lib/manager/pip_requirements/extract.js index 99c1274faf..77e480013a 100644 --- a/lib/manager/pip_requirements/extract.js +++ b/lib/manager/pip_requirements/extract.js @@ -3,6 +3,7 @@ const packagePattern = '[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]'; const extrasPattern = '(?:\\s*\\[[^\\]]+\\])?'; const rangePattern = require('@renovate/pep440/lib/specifier').RANGE_PATTERN; +const { logger } = require('../../logger'); const { isSkipComment } = require('../../util/ignore'); const specifierPartPattern = `\\s*${rangePattern.replace(/\?<\w+>/g, '?:')}`; diff --git a/lib/manager/pip_requirements/update.js b/lib/manager/pip_requirements/update.js index 7abccae162..0c8783352f 100644 --- a/lib/manager/pip_requirements/update.js +++ b/lib/manager/pip_requirements/update.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { dependencyPattern } = require('./extract'); module.exports = { diff --git a/lib/manager/pip_setup/extract.js b/lib/manager/pip_setup/extract.js index 29c6d472f7..b085288e6c 100644 --- a/lib/manager/pip_setup/extract.js +++ b/lib/manager/pip_setup/extract.js @@ -1,5 +1,6 @@ const { exec } = require('child-process-promise'); const { join } = require('upath'); +const { logger } = require('../../logger'); const { isSkipComment } = require('../../util/ignore'); const { dependencyPattern } = require('../pip_requirements/extract'); diff --git a/lib/manager/pipenv/artifacts.js b/lib/manager/pipenv/artifacts.js index b595cf5ee4..e4dd140f21 100644 --- a/lib/manager/pipenv/artifacts.js +++ b/lib/manager/pipenv/artifacts.js @@ -2,6 +2,7 @@ const { exec } = require('child-process-promise'); const fs = require('fs-extra'); const upath = require('upath'); const { getChildProcessEnv } = require('../../util/env'); +const { logger } = require('../../logger'); module.exports = { updateArtifacts, diff --git a/lib/manager/pipenv/extract.js b/lib/manager/pipenv/extract.js index a4ce2a6121..4c81528f15 100644 --- a/lib/manager/pipenv/extract.js +++ b/lib/manager/pipenv/extract.js @@ -4,6 +4,7 @@ const is = require('@sindresorhus/is'); // based on https://www.python.org/dev/peps/pep-0508/#names const packageRegex = /^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$/i; const rangePattern = require('@renovate/pep440/lib/specifier').RANGE_PATTERN; +const { logger } = require('../../logger'); const specifierPartPattern = `\\s*${rangePattern.replace( /\?<\w+>/g, diff --git a/lib/manager/pipenv/update.js b/lib/manager/pipenv/update.js index 995d71e333..8d5829ea01 100644 --- a/lib/manager/pipenv/update.js +++ b/lib/manager/pipenv/update.js @@ -1,5 +1,6 @@ const _ = require('lodash'); const toml = require('toml'); +const { logger } = require('../../logger'); module.exports = { updateDependency, diff --git a/lib/manager/poetry/artifacts.js b/lib/manager/poetry/artifacts.js index b2999a1633..47c9c5198d 100644 --- a/lib/manager/poetry/artifacts.js +++ b/lib/manager/poetry/artifacts.js @@ -4,6 +4,8 @@ const fs = require('fs-extra'); const { exec } = require('child-process-promise'); const { getChildProcessEnv } = require('../../util/env'); +const { logger } = require('../../logger'); + module.exports = { updateArtifacts, }; diff --git a/lib/manager/poetry/extract.js b/lib/manager/poetry/extract.js index 85153ceb2e..3835e71875 100644 --- a/lib/manager/poetry/extract.js +++ b/lib/manager/poetry/extract.js @@ -1,5 +1,6 @@ const toml = require('toml'); const semver = require('../../versioning/poetry'); +const { logger } = require('../../logger'); module.exports = { extractPackageFile, diff --git a/lib/manager/poetry/update.js b/lib/manager/poetry/update.js index 1536899a85..0c8b0e6d0f 100644 --- a/lib/manager/poetry/update.js +++ b/lib/manager/poetry/update.js @@ -1,6 +1,8 @@ const _ = require('lodash'); const toml = require('toml'); +const { logger } = require('../../logger'); + module.exports = { updateDependency, }; diff --git a/lib/manager/pub/extract.js b/lib/manager/pub/extract.js index 8a5e1e335c..5dcac29ade 100644 --- a/lib/manager/pub/extract.js +++ b/lib/manager/pub/extract.js @@ -1,5 +1,6 @@ const yaml = require('js-yaml'); const npm = require('../../versioning/npm/index'); +const { logger } = require('../../logger'); module.exports = { extractPackageFile, diff --git a/lib/manager/ruby-version/extract.js b/lib/manager/ruby-version/extract.js index 72f9c5a7ba..f999ecbc59 100644 --- a/lib/manager/ruby-version/extract.js +++ b/lib/manager/ruby-version/extract.js @@ -1,4 +1,5 @@ const ruby = require('../../versioning/ruby'); +const { logger } = require('../../logger'); module.exports = { extractPackageFile, diff --git a/lib/manager/ruby-version/update.js b/lib/manager/ruby-version/update.js index 0398939e25..d751a8ba34 100644 --- a/lib/manager/ruby-version/update.js +++ b/lib/manager/ruby-version/update.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { updateDependency, }; diff --git a/lib/manager/terraform/extract.js b/lib/manager/terraform/extract.js index f63c185dcf..b7969ed0a2 100644 --- a/lib/manager/terraform/extract.js +++ b/lib/manager/terraform/extract.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { isValid, isVersion } = require('../../versioning/hashicorp'); module.exports = { diff --git a/lib/manager/terraform/update.js b/lib/manager/terraform/update.js index a6a830251f..c96cd04c46 100644 --- a/lib/manager/terraform/update.js +++ b/lib/manager/terraform/update.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { updateDependency, }; diff --git a/lib/manager/travis/package.js b/lib/manager/travis/package.js index 541266b562..78c00e7cae 100644 --- a/lib/manager/travis/package.js +++ b/lib/manager/travis/package.js @@ -2,6 +2,7 @@ const is = require('@sindresorhus/is'); const { isEqual } = require('lodash'); const { getPkgReleases } = require('../../datasource'); const { isVersion, maxSatisfyingVersion } = require('../../versioning/semver'); +const { logger } = require('../../logger'); const nodeJsSchedule = require('../../../data/node-js-schedule.json'); module.exports = { diff --git a/lib/manager/travis/update.js b/lib/manager/travis/update.js index ef86cd7804..f3c94aca9c 100644 --- a/lib/manager/travis/update.js +++ b/lib/manager/travis/update.js @@ -1,5 +1,6 @@ const detectIndent = require('detect-indent'); const is = require('@sindresorhus/is'); +const { logger } = require('../../logger'); module.exports = { updateDependency, diff --git a/lib/platform/azure/azure-helper.ts b/lib/platform/azure/azure-helper.ts index 7f65c90b59..4e019b845b 100644 --- a/lib/platform/azure/azure-helper.ts +++ b/lib/platform/azure/azure-helper.ts @@ -1,4 +1,5 @@ import * as azureApi from './azure-got-wrapper'; +import { logger } from '../../logger'; /** * diff --git a/lib/platform/azure/index.ts b/lib/platform/azure/index.ts index 135ba32546..2ec2d577b3 100644 --- a/lib/platform/azure/index.ts +++ b/lib/platform/azure/index.ts @@ -3,6 +3,7 @@ import * as azureApi from './azure-got-wrapper'; import * as hostRules from '../../util/host-rules'; import { appSlug } from '../../config/app-strings'; import GitStorage from '../git/storage'; +import { logger } from '../../logger'; interface RepoConfig { storage: GitStorage; diff --git a/lib/platform/bitbucket-server/index.ts b/lib/platform/bitbucket-server/index.ts index 650e14b480..85bf5a975e 100644 --- a/lib/platform/bitbucket-server/index.ts +++ b/lib/platform/bitbucket-server/index.ts @@ -5,6 +5,7 @@ import { api } from './bb-got-wrapper'; import * as utils from './utils'; import * as hostRules from '../../util/host-rules'; import GitStorage from '../git/storage'; +import { logger } from '../../logger'; interface BbsConfig { baseBranch: string; diff --git a/lib/platform/bitbucket/index.ts b/lib/platform/bitbucket/index.ts index f4bca52cac..4f3a8f8189 100644 --- a/lib/platform/bitbucket/index.ts +++ b/lib/platform/bitbucket/index.ts @@ -2,6 +2,7 @@ import parseDiff from 'parse-diff'; import { api } from './bb-got-wrapper'; import * as utils from './utils'; import * as hostRules from '../../util/host-rules'; +import { logger } from '../../logger'; import GitStorage from '../git/storage'; import { readOnlyIssueBody } from '../utils/read-only-issue-body'; import { appSlug } from '../../config/app-strings'; diff --git a/lib/platform/git/storage.ts b/lib/platform/git/storage.ts index cd53c9d9ab..96bafa256d 100644 --- a/lib/platform/git/storage.ts +++ b/lib/platform/git/storage.ts @@ -3,6 +3,7 @@ import fs from 'fs-extra'; import { join } from 'path'; import Git from 'simple-git/promise'; import URL from 'url'; +import { logger } from '../../logger'; declare module 'fs-extra' { // eslint-disable-next-line import/prefer-default-export diff --git a/lib/platform/github/gh-got-wrapper.ts b/lib/platform/github/gh-got-wrapper.ts index 8b8662a925..c13adbe49b 100644 --- a/lib/platform/github/gh-got-wrapper.ts +++ b/lib/platform/github/gh-got-wrapper.ts @@ -5,6 +5,7 @@ import pAll from 'p-all'; import got from '../../util/got'; import { maskToken } from '../../util/mask'; import { GotApi } from '../common'; +import { logger } from '../../logger'; const hostType = 'github'; let baseUrl = 'https://api.github.com/'; diff --git a/lib/platform/github/index.ts b/lib/platform/github/index.ts index c90bdde9f9..fe56b4e271 100644 --- a/lib/platform/github/index.ts +++ b/lib/platform/github/index.ts @@ -3,6 +3,7 @@ import delay from 'delay'; import semver from 'semver'; import URL from 'url'; +import { logger } from '../../logger'; import { api } from './gh-got-wrapper'; import * as hostRules from '../../util/host-rules'; import GitStorage from '../git/storage'; diff --git a/lib/platform/gitlab/gl-got-wrapper.ts b/lib/platform/gitlab/gl-got-wrapper.ts index d256961f12..7303026650 100644 --- a/lib/platform/gitlab/gl-got-wrapper.ts +++ b/lib/platform/gitlab/gl-got-wrapper.ts @@ -2,6 +2,7 @@ import parseLinkHeader from 'parse-link-header'; import { GotApi } from '../common'; import got from '../../util/got'; +import { logger } from '../../logger'; const hostType = 'gitlab'; let baseUrl = 'https://gitlab.com/api/v4/'; diff --git a/lib/platform/gitlab/index.ts b/lib/platform/gitlab/index.ts index 4dd429a43e..12dd166cc4 100644 --- a/lib/platform/gitlab/index.ts +++ b/lib/platform/gitlab/index.ts @@ -6,6 +6,7 @@ import * as hostRules from '../../util/host-rules'; import GitStorage from '../git/storage'; import { PlatformConfig } from '../common'; import { configFileNames } from '../../config/app-strings'; +import { logger } from '../../logger'; const defaultConfigFile = configFileNames[0]; let config: { diff --git a/lib/platform/index.ts b/lib/platform/index.ts index 2edaeaa9e1..485b6554be 100644 --- a/lib/platform/index.ts +++ b/lib/platform/index.ts @@ -1,6 +1,7 @@ import URL from 'url'; import addrs from 'email-addresses'; import * as hostRules from '../util/host-rules'; +import { logger } from '../logger'; // TODO: move to definitions: platform.allowedValues /* eslint-disable global-require */ diff --git a/lib/types.d.ts b/lib/types.d.ts index f36ce43cf5..3ce19ad72d 100644 --- a/lib/types.d.ts +++ b/lib/types.d.ts @@ -1,20 +1,4 @@ -declare namespace Renovate { - // TODO: refactor logger - interface Logger { - trace(...args: any[]): void; - debug(...args: any[]): void; - info(...args: any[]): void; - warn(...args: any[]): void; - error(...args: any[]): void; - fatal(...args: any[]): void; - child(...args: any[]): void; - - setMeta(obj: any): void; - } -} - -// eslint-disable-next-line no-var, vars-on-top -declare var logger: Renovate.Logger; +declare namespace Renovate {} declare interface Error { validationError?: string; @@ -25,8 +9,7 @@ declare namespace NodeJS { interface Global { appMode?: boolean; gitAuthor?: { name: string; email: string }; - logger: Renovate.Logger; - + renovateError?: boolean; renovateVersion: string; // TODO: declare interface for all platforms platform: typeof import('./platform/github'); diff --git a/lib/util/got/auth.js b/lib/util/got/auth.js index ad2b833a3e..77311e45cc 100644 --- a/lib/util/got/auth.js +++ b/lib/util/got/auth.js @@ -1,4 +1,5 @@ const got = require('got'); +const { logger } = require('../../logger'); // istanbul ignore next module.exports = got.create({ diff --git a/lib/util/got/host-rules.js b/lib/util/got/host-rules.js index e52382c97d..bed682ab0a 100644 --- a/lib/util/got/host-rules.js +++ b/lib/util/got/host-rules.js @@ -1,5 +1,6 @@ /* eslint-disable no-param-reassign */ const got = require('got'); +const { logger } = require('../../logger'); const hostRules = require('../host-rules'); // Apply host rules to requests diff --git a/lib/util/got/stats.js b/lib/util/got/stats.js index c64b73b7cd..cf723302d7 100644 --- a/lib/util/got/stats.js +++ b/lib/util/got/stats.js @@ -1,4 +1,5 @@ const got = require('got'); +const { logger } = require('../../logger'); let stats = {}; diff --git a/lib/util/host-rules.ts b/lib/util/host-rules.ts index e9352c2dc0..5299e163a3 100644 --- a/lib/util/host-rules.ts +++ b/lib/util/host-rules.ts @@ -1,5 +1,6 @@ import URL from 'url'; import merge from 'deepmerge'; +import { logger } from '../logger'; export interface HostRule { hostType?: string; diff --git a/lib/util/ignore.js b/lib/util/ignore.js index dfb2b60a8a..5c7fb557bf 100644 --- a/lib/util/ignore.js +++ b/lib/util/ignore.js @@ -1,3 +1,5 @@ +const { logger } = require('../logger'); + module.exports = { isSkipComment, }; diff --git a/lib/util/package-rules.js b/lib/util/package-rules.js index 56109ccf03..ea8341cef9 100644 --- a/lib/util/package-rules.js +++ b/lib/util/package-rules.js @@ -1,5 +1,6 @@ const minimatch = require('minimatch'); +const { logger } = require('../logger'); const versioning = require('../versioning'); const { mergeChildConfig } = require('../config'); diff --git a/lib/versioning/composer/index.js b/lib/versioning/composer/index.js index 29d35e6161..2e3c009917 100644 --- a/lib/versioning/composer/index.js +++ b/lib/versioning/composer/index.js @@ -1,4 +1,5 @@ const { coerce } = require('semver'); +const { logger } = require('../../logger'); const npm = require('../npm'); function padZeroes(input) { diff --git a/lib/versioning/index.js b/lib/versioning/index.js index 2d5ca56a29..55ff6ff4a8 100644 --- a/lib/versioning/index.js +++ b/lib/versioning/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../logger'); const supportedSchemes = require('../config/definitions') .getOptions() .find(option => option.name === 'versionScheme').allowedValues; diff --git a/lib/versioning/npm/range.js b/lib/versioning/npm/range.js index c2a03dc802..adfd7591c3 100644 --- a/lib/versioning/npm/range.js +++ b/lib/versioning/npm/range.js @@ -8,6 +8,7 @@ const { valid: isVersion, } = require('semver'); const { parseRange } = require('semver-utils'); +const { logger } = require('../../logger'); module.exports = { getNewValue, diff --git a/lib/versioning/pep440/range.js b/lib/versioning/pep440/range.js index 063b705b69..6d78fe3920 100644 --- a/lib/versioning/pep440/range.js +++ b/lib/versioning/pep440/range.js @@ -2,6 +2,7 @@ const { gte, lte, satisfies } = require('@renovate/pep440'); const { parse: parseVersion } = require('@renovate/pep440/lib/version'); const { parse: parseRange } = require('@renovate/pep440/lib/specifier'); +const { logger } = require('../../logger'); module.exports = { getNewValue, diff --git a/lib/versioning/ruby/index.js b/lib/versioning/ruby/index.js index d65d338d3c..36036c9d4d 100644 --- a/lib/versioning/ruby/index.js +++ b/lib/versioning/ruby/index.js @@ -6,6 +6,7 @@ const { maxSatisfying, minSatisfying, } = require('@snyk/ruby-semver'); +const { logger } = require('../../logger'); const { parse: parseVersion } = require('./version'); const { parse: parseRange, ltr } = require('./range'); const { isSingleOperator, isValidOperator } = require('./operator'); diff --git a/lib/versioning/ruby/range.js b/lib/versioning/ruby/range.js index 7aa8b6a6cf..bfcc1fcb2f 100644 --- a/lib/versioning/ruby/range.js +++ b/lib/versioning/ruby/range.js @@ -1,5 +1,6 @@ const GemVersion = require('@snyk/ruby-semver/lib/ruby/gem-version'); const GemRequirement = require('@snyk/ruby-semver/lib/ruby/gem-requirement'); +const { logger } = require('../../logger'); const { EQUAL, NOT_EQUAL, GT, LT, GTE, LTE, PGTE } = require('./operator'); const parse = range => { diff --git a/lib/versioning/ruby/strategies/bump.js b/lib/versioning/ruby/strategies/bump.js index 28fe77f4c9..39b2549cd0 100644 --- a/lib/versioning/ruby/strategies/bump.js +++ b/lib/versioning/ruby/strategies/bump.js @@ -1,4 +1,5 @@ const { gte, lte } = require('@snyk/ruby-semver'); +const { logger } = require('../../../logger'); const { EQUAL, NOT_EQUAL, GT, LT, GTE, LTE, PGTE } = require('../operator'); const { floor, increment, decrement } = require('../version'); const { parse: parseRange } = require('../range'); diff --git a/lib/workers/branch/automerge.js b/lib/workers/branch/automerge.js index 2e878306d4..ce0363e742 100644 --- a/lib/workers/branch/automerge.js +++ b/lib/workers/branch/automerge.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { tryBranchAutomerge, }; diff --git a/lib/workers/branch/check-existing.js b/lib/workers/branch/check-existing.js index 144525d611..5195af21a8 100644 --- a/lib/workers/branch/check-existing.js +++ b/lib/workers/branch/check-existing.js @@ -1,3 +1,5 @@ +const { logger } = require('../../logger'); + module.exports = { prAlreadyExisted, }; diff --git a/lib/workers/branch/commit.js b/lib/workers/branch/commit.js index b8fe8fcb97..85aaffdf79 100644 --- a/lib/workers/branch/commit.js +++ b/lib/workers/branch/commit.js @@ -1,5 +1,6 @@ const is = require('@sindresorhus/is'); const minimatch = require('minimatch'); +const { logger } = require('../../logger'); module.exports = { commitFilesToBranch, diff --git a/lib/workers/branch/get-updated.js b/lib/workers/branch/get-updated.js index fe95591229..7265e2aa69 100644 --- a/lib/workers/branch/get-updated.js +++ b/lib/workers/branch/get-updated.js @@ -1,4 +1,5 @@ const is = require('@sindresorhus/is'); +const { logger } = require('../../logger'); const { get } = require('../../manager'); module.exports = { diff --git a/lib/workers/branch/index.js b/lib/workers/branch/index.js index 1c308e430c..af4e26b4ed 100644 --- a/lib/workers/branch/index.js +++ b/lib/workers/branch/index.js @@ -1,5 +1,6 @@ const { DateTime } = require('luxon'); +const { logger, setMeta } = require('../../logger'); const schedule = require('./schedule'); const { getUpdatedPackageFiles } = require('./get-updated'); const { getAdditionalFiles } = require('../../manager/npm/post-update'); @@ -23,7 +24,7 @@ async function processBranch(branchConfig, prHourlyLimitReached, packageFiles) { .map(upgrade => upgrade.depName) .filter(v => v) // remove nulls (happens for lock file maintenance) .filter((value, i, list) => list.indexOf(value) === i); // remove duplicates - logger.setMeta({ + setMeta({ repository: config.repository, branch: config.branchName, dependencies, diff --git a/lib/workers/branch/parent.js b/lib/workers/branch/parent.js index 5f3c0e544f..19e6950477 100644 --- a/lib/workers/branch/parent.js +++ b/lib/workers/branch/parent.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { appSlug } = require('../../config/app-strings'); module.exports = { diff --git a/lib/workers/branch/schedule.js b/lib/workers/branch/schedule.js index a210423a02..5a1d37d67f 100644 --- a/lib/workers/branch/schedule.js +++ b/lib/workers/branch/schedule.js @@ -1,6 +1,7 @@ const is = require('@sindresorhus/is'); const later = require('later'); const moment = require('moment-timezone'); +const { logger } = require('../../logger'); module.exports = { hasValidTimezone, diff --git a/lib/workers/branch/status-checks.js b/lib/workers/branch/status-checks.js index b1280969fe..5afd282904 100644 --- a/lib/workers/branch/status-checks.js +++ b/lib/workers/branch/status-checks.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { appSlug, urls } = require('../../config/app-strings'); module.exports = { diff --git a/lib/workers/global/autodiscover.js b/lib/workers/global/autodiscover.js index a07796dac0..1eeb4d2537 100644 --- a/lib/workers/global/autodiscover.js +++ b/lib/workers/global/autodiscover.js @@ -1,5 +1,6 @@ const is = require('@sindresorhus/is'); const minimatch = require('minimatch'); +const { logger } = require('../../logger'); module.exports = { autodiscoverRepositories, diff --git a/lib/workers/global/cache.js b/lib/workers/global/cache.js index 3843682d69..62379c1400 100644 --- a/lib/workers/global/cache.js +++ b/lib/workers/global/cache.js @@ -1,6 +1,7 @@ const cacache = require('cacache/en'); const path = require('path'); const { DateTime } = require('luxon'); +const { logger } = require('../../logger'); module.exports = { init, diff --git a/lib/workers/global/index.js b/lib/workers/global/index.js index b691550d93..8c16d80249 100644 --- a/lib/workers/global/index.js +++ b/lib/workers/global/index.js @@ -2,7 +2,7 @@ const fs = require('fs-extra'); const os = require('os'); const is = require('@sindresorhus/is'); const path = require('path'); -const { initLogger } = require('../../logger'); +const { logger, setMeta } = require('../../logger'); const configParser = require('../../config'); const repositoryWorker = require('../repository'); const cache = require('./cache'); @@ -18,7 +18,6 @@ module.exports = { }; async function start() { - initLogger(); try { cache.init(os.tmpdir()); let config = await configParser.parseConfigs(process.env, process.argv); @@ -68,7 +67,7 @@ async function start() { } await repositoryWorker.renovateRepository(repoConfig); } - logger.setMeta({}); + setMeta({}); printStats(); logger.info(`${appName} finished`); } catch (err) /* istanbul ignore next */ { diff --git a/lib/workers/pr/changelog/index.js b/lib/workers/pr/changelog/index.js index 9c62ec936b..2d3d3976df 100644 --- a/lib/workers/pr/changelog/index.js +++ b/lib/workers/pr/changelog/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../logger'); const versioning = require('../../../versioning'); const sourceGithub = require('./source-github'); diff --git a/lib/workers/pr/changelog/release-notes.js b/lib/workers/pr/changelog/release-notes.js index 3e5b935853..2a85c223ba 100644 --- a/lib/workers/pr/changelog/release-notes.js +++ b/lib/workers/pr/changelog/release-notes.js @@ -3,6 +3,7 @@ import ghGot from '../../../platform/github/gh-got-wrapper'; const changelogFilenameRegex = require('changelog-filename-regex'); const { linkify } = require('linkify-markdown'); const MarkdownIt = require('markdown-it'); +const { logger } = require('../../../logger'); const markdown = new MarkdownIt('zero'); markdown.enable(['heading', 'lheading']); diff --git a/lib/workers/pr/changelog/source-github.js b/lib/workers/pr/changelog/source-github.js index 0162daacc4..214e478490 100644 --- a/lib/workers/pr/changelog/source-github.js +++ b/lib/workers/pr/changelog/source-github.js @@ -1,6 +1,7 @@ import ghGot from '../../../platform/github/gh-got-wrapper'; const URL = require('url'); +const { logger } = require('../../../logger'); const hostRules = require('../../../util/host-rules'); const versioning = require('../../../versioning'); const { addReleaseNotes } = require('./release-notes'); diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js index 199a99e1cd..bacb09a698 100644 --- a/lib/workers/pr/index.js +++ b/lib/workers/pr/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const changelogHelper = require('./changelog'); const { getPrBody } = require('./pr-body'); diff --git a/lib/workers/pr/pr-body.js b/lib/workers/pr/pr-body.js index fdd3b7211c..c03bc44356 100644 --- a/lib/workers/pr/pr-body.js +++ b/lib/workers/pr/pr-body.js @@ -1,5 +1,6 @@ const is = require('@sindresorhus/is'); const handlebars = require('handlebars'); +const { logger } = require('../../logger'); const releaseNotesHbs = require('./changelog/hbs-template'); const { getPrConfigDescription } = require('./pr-body-config'); diff --git a/lib/workers/repository/error-config.js b/lib/workers/repository/error-config.js index 62712a6a52..11ac39443d 100644 --- a/lib/workers/repository/error-config.js +++ b/lib/workers/repository/error-config.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { appName, onboardingBranch, diff --git a/lib/workers/repository/error.js b/lib/workers/repository/error.js index a4fabfb956..614fb62e9c 100644 --- a/lib/workers/repository/error.js +++ b/lib/workers/repository/error.js @@ -1,13 +1,11 @@ -const { raiseConfigWarningIssue } = require('./error-config'); +import { logger, setMeta } from '../../logger'; +import { raiseConfigWarningIssue } from './error-config'; -module.exports = { - handleError, -}; - -async function handleError(config, err) { - logger.setMeta({ +export default async function handleError(config, err) { + setMeta({ repository: config.repository, }); + if (err.message === 'uninitiated') { logger.info('Repository is uninitiated - skipping'); delete config.branchList; // eslint-disable-line no-param-reassign diff --git a/lib/workers/repository/extract/file-match.js b/lib/workers/repository/extract/file-match.js index 3aeaab804e..3939b61f33 100644 --- a/lib/workers/repository/extract/file-match.js +++ b/lib/workers/repository/extract/file-match.js @@ -1,4 +1,5 @@ const minimatch = require('minimatch'); +const { logger } = require('../../../logger'); module.exports = { getIncludedFiles, diff --git a/lib/workers/repository/extract/index.js b/lib/workers/repository/extract/index.js index 4b5e97aff3..a794b89933 100644 --- a/lib/workers/repository/extract/index.js +++ b/lib/workers/repository/extract/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../logger'); const { getManagerList } = require('../../../manager'); const { getManagerConfig } = require('../../../config'); const { getManagerPackageFiles } = require('./manager-files'); diff --git a/lib/workers/repository/extract/manager-files.js b/lib/workers/repository/extract/manager-files.js index 6452ec9e24..433ac3aa5b 100644 --- a/lib/workers/repository/extract/manager-files.js +++ b/lib/workers/repository/extract/manager-files.js @@ -1,3 +1,5 @@ +const { logger } = require('../../../logger'); + module.exports = { getManagerPackageFiles, }; diff --git a/lib/workers/repository/finalise/prune.js b/lib/workers/repository/finalise/prune.js index 9afd19b1ef..bb858fb72e 100644 --- a/lib/workers/repository/finalise/prune.js +++ b/lib/workers/repository/finalise/prune.js @@ -1,3 +1,5 @@ +const { logger } = require('../../../logger'); + module.exports = { pruneStaleBranches, }; diff --git a/lib/workers/repository/finalise/validate.js b/lib/workers/repository/finalise/validate.js index 34e7d323fd..dd26a2e313 100644 --- a/lib/workers/repository/finalise/validate.js +++ b/lib/workers/repository/finalise/validate.js @@ -1,4 +1,5 @@ const JSON5 = require('json5'); +const { logger, setMeta } = require('../../../logger'); const { migrateAndValidate } = require('../../../config/migrate-validate'); const { configFileNames } = require('../../../config/app-strings'); const { appName, appSlug } = require('../../../config/app-strings'); @@ -23,7 +24,7 @@ async function validatePrs(config) { ) { return; } - logger.setMeta({ repository: config.repository }); + setMeta({ repository: config.repository }); logger.debug('branchPrefix: ' + config.branchPrefix); const renovatePrs = await getRenovatePrs(config.branchPrefix); logger.debug({ renovatePrs }, `Found ${renovatePrs.length} ${appName} PRs`); diff --git a/lib/workers/repository/index.js b/lib/workers/repository/index.js index a5914145bf..c206adc3f1 100644 --- a/lib/workers/repository/index.js +++ b/lib/workers/repository/index.js @@ -1,8 +1,10 @@ +import handleError from './error'; + const fs = require('fs-extra'); +const { logger, setMeta } = require('../../logger'); const { initRepo } = require('./init'); const { ensureOnboardingPr } = require('./onboarding/pr'); -const { handleError } = require('./error'); const { processResult } = require('./result'); const { processRepo } = require('./process'); const { finaliseRepo } = require('./finalise'); @@ -15,7 +17,7 @@ module.exports = { // istanbul ignore next async function renovateRepository(repoConfig) { let config = { ...repoConfig }; - logger.setMeta({ repository: config.repository }); + setMeta({ repository: config.repository }); logger.info('Renovating repository'); logger.trace({ config }); let repoResult; diff --git a/lib/workers/repository/init/base.js b/lib/workers/repository/init/base.js index 16a7c09a72..a2913a3f39 100644 --- a/lib/workers/repository/init/base.js +++ b/lib/workers/repository/init/base.js @@ -1,3 +1,5 @@ +const { logger } = require('../../../logger'); + async function checkBaseBranch(config) { logger.debug('checkBaseBranch()'); logger.debug(`config.repoIsOnboarded=${config.repoIsOnboarded}`); diff --git a/lib/workers/repository/init/config.js b/lib/workers/repository/init/config.js index a5a2488768..07ded19677 100644 --- a/lib/workers/repository/init/config.js +++ b/lib/workers/repository/init/config.js @@ -2,6 +2,7 @@ const jsonValidator = require('json-dup-key-validator'); const JSON5 = require('json5'); const path = require('path'); +const { logger } = require('../../../logger'); const { mergeChildConfig } = require('../../../config'); const { migrateAndValidate } = require('../../../config/migrate-validate'); const { decryptConfig } = require('../../../config/decrypt'); diff --git a/lib/workers/repository/init/flatten.js b/lib/workers/repository/init/flatten.js index 364a828249..e52af19fef 100644 --- a/lib/workers/repository/init/flatten.js +++ b/lib/workers/repository/init/flatten.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../logger'); const { mergeChildConfig } = require('../../../config'); function flattenPackageRules(packageRules) { diff --git a/lib/workers/repository/init/index.js b/lib/workers/repository/init/index.js index 18a5a73b75..9870527218 100644 --- a/lib/workers/repository/init/index.js +++ b/lib/workers/repository/init/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../logger'); const { checkOnboardingBranch } = require('../onboarding/branch'); const { checkIfConfigured } = require('../configured'); const { initApis } = require('../init/apis'); diff --git a/lib/workers/repository/init/semantic.js b/lib/workers/repository/init/semantic.js index 942f52836c..da3d8c839d 100644 --- a/lib/workers/repository/init/semantic.js +++ b/lib/workers/repository/init/semantic.js @@ -1,4 +1,5 @@ const conventionalCommitsDetector = require('conventional-commits-detector'); +const { logger } = require('../../../logger'); async function detectSemanticCommits(config) { logger.debug('detectSemanticCommits()'); diff --git a/lib/workers/repository/init/vulnerability.js b/lib/workers/repository/init/vulnerability.js index f556c2d86d..0b81bffe1e 100644 --- a/lib/workers/repository/init/vulnerability.js +++ b/lib/workers/repository/init/vulnerability.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../logger'); const versioning = require('../../../versioning'); module.exports = { diff --git a/lib/workers/repository/master-issue.js b/lib/workers/repository/master-issue.js index 93806459f8..d4af88d261 100644 --- a/lib/workers/repository/master-issue.js +++ b/lib/workers/repository/master-issue.js @@ -1,3 +1,4 @@ +const { logger } = require('../../logger'); const { appName } = require('../../config/app-strings'); module.exports = { diff --git a/lib/workers/repository/onboarding/branch/check.js b/lib/workers/repository/onboarding/branch/check.js index ddfa215c4d..cd6e005828 100644 --- a/lib/workers/repository/onboarding/branch/check.js +++ b/lib/workers/repository/onboarding/branch/check.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../../logger'); const { appName, appSlug, diff --git a/lib/workers/repository/onboarding/branch/config.js b/lib/workers/repository/onboarding/branch/config.js index eef34e4e37..899d482fcc 100644 --- a/lib/workers/repository/onboarding/branch/config.js +++ b/lib/workers/repository/onboarding/branch/config.js @@ -1,4 +1,5 @@ const is = require('@sindresorhus/is'); +const { logger } = require('../../../../logger'); const { appSlug } = require('../../../../config/app-strings'); diff --git a/lib/workers/repository/onboarding/branch/create.js b/lib/workers/repository/onboarding/branch/create.js index 61d17f36be..02d140526b 100644 --- a/lib/workers/repository/onboarding/branch/create.js +++ b/lib/workers/repository/onboarding/branch/create.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../../logger'); const { getOnboardingConfig } = require('./config'); const { configFileNames, diff --git a/lib/workers/repository/onboarding/branch/index.js b/lib/workers/repository/onboarding/branch/index.js index 88a9b1db21..1b0707422b 100644 --- a/lib/workers/repository/onboarding/branch/index.js +++ b/lib/workers/repository/onboarding/branch/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../../logger'); const { extractAllDependencies } = require('../../extract'); const { createOnboardingBranch } = require('./create'); const { rebaseOnboardingBranch } = require('./rebase'); diff --git a/lib/workers/repository/onboarding/branch/rebase.js b/lib/workers/repository/onboarding/branch/rebase.js index 4e1ed81b52..2eb960cf10 100644 --- a/lib/workers/repository/onboarding/branch/rebase.js +++ b/lib/workers/repository/onboarding/branch/rebase.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../../logger'); const { getOnboardingConfig } = require('./config'); const { configFileNames, diff --git a/lib/workers/repository/onboarding/pr/config-description.js b/lib/workers/repository/onboarding/pr/config-description.js index dec94f9926..2e8adecb87 100644 --- a/lib/workers/repository/onboarding/pr/config-description.js +++ b/lib/workers/repository/onboarding/pr/config-description.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../../logger'); const { appName, configFileNames, diff --git a/lib/workers/repository/onboarding/pr/errors-warnings.js b/lib/workers/repository/onboarding/pr/errors-warnings.js index b1a783fb5c..a351ac060a 100644 --- a/lib/workers/repository/onboarding/pr/errors-warnings.js +++ b/lib/workers/repository/onboarding/pr/errors-warnings.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../../logger'); const { appName } = require('../../../../config/app-strings'); function getWarnings(config) { diff --git a/lib/workers/repository/onboarding/pr/index.js b/lib/workers/repository/onboarding/pr/index.js index d3f26dd8e1..d8aad93309 100644 --- a/lib/workers/repository/onboarding/pr/index.js +++ b/lib/workers/repository/onboarding/pr/index.js @@ -1,4 +1,5 @@ const is = require('@sindresorhus/is'); +const { logger } = require('../../../../logger'); const { getConfigDesc } = require('./config-description'); const { getErrors, getWarnings, getDepWarnings } = require('./errors-warnings'); const { getBaseBranchDesc } = require('./base-branch'); diff --git a/lib/workers/repository/onboarding/pr/pr-list.js b/lib/workers/repository/onboarding/pr/pr-list.js index 08d503e8f3..86dc537c3c 100644 --- a/lib/workers/repository/onboarding/pr/pr-list.js +++ b/lib/workers/repository/onboarding/pr/pr-list.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../../logger'); const { appName } = require('../../../../config/app-strings'); function getPrList(config, branches) { diff --git a/lib/workers/repository/process/deprecated.js b/lib/workers/repository/process/deprecated.js index 585c4f3c26..ee7a829ada 100644 --- a/lib/workers/repository/process/deprecated.js +++ b/lib/workers/repository/process/deprecated.js @@ -1,3 +1,5 @@ +const { logger } = require('../../../logger'); + module.exports = { raiseDeprecationWarnings, }; diff --git a/lib/workers/repository/process/extract-update.js b/lib/workers/repository/process/extract-update.js index edec07af96..0352e1b43c 100644 --- a/lib/workers/repository/process/extract-update.js +++ b/lib/workers/repository/process/extract-update.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../logger'); const { writeUpdates } = require('./write'); const { sortBranches } = require('./sort'); const { fetchUpdates } = require('./fetch'); diff --git a/lib/workers/repository/process/fetch.js b/lib/workers/repository/process/fetch.js index 86ef289705..ca48317129 100644 --- a/lib/workers/repository/process/fetch.js +++ b/lib/workers/repository/process/fetch.js @@ -1,5 +1,6 @@ const is = require('@sindresorhus/is'); const pAll = require('p-all'); +const { logger } = require('../../../logger'); const { getPackageUpdates } = require('../../../manager'); const { mergeChildConfig } = require('../../../config'); diff --git a/lib/workers/repository/process/index.js b/lib/workers/repository/process/index.js index 86d49b7c79..dd7a9e28cf 100644 --- a/lib/workers/repository/process/index.js +++ b/lib/workers/repository/process/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../logger'); const { mergeChildConfig } = require('../../../config'); const { extractAndUpdate } = require('./extract-update'); const { appName } = require('../../../config/app-strings'); diff --git a/lib/workers/repository/process/limits.js b/lib/workers/repository/process/limits.js index 14b4c205ed..e058fe8e6e 100644 --- a/lib/workers/repository/process/limits.js +++ b/lib/workers/repository/process/limits.js @@ -1,4 +1,5 @@ const moment = require('moment'); +const { logger } = require('../../../logger'); const { onboardingBranch } = require('../../../config/app-strings'); diff --git a/lib/workers/repository/process/lookup/filter.js b/lib/workers/repository/process/lookup/filter.js index c78a68d9ed..6cd3a42d9c 100644 --- a/lib/workers/repository/process/lookup/filter.js +++ b/lib/workers/repository/process/lookup/filter.js @@ -1,4 +1,5 @@ const semver = require('semver'); +const { logger } = require('../../../../logger'); const versioning = require('../../../../versioning'); module.exports = { diff --git a/lib/workers/repository/process/lookup/index.js b/lib/workers/repository/process/lookup/index.js index 2acbaf5c41..64ddd9d669 100644 --- a/lib/workers/repository/process/lookup/index.js +++ b/lib/workers/repository/process/lookup/index.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../../logger'); const versioning = require('../../../../versioning'); const { getRollbackUpdate } = require('./rollback'); const { getRangeStrategy } = require('../../../../manager'); diff --git a/lib/workers/repository/process/lookup/rollback.js b/lib/workers/repository/process/lookup/rollback.js index 8755350b2c..83d657e552 100644 --- a/lib/workers/repository/process/lookup/rollback.js +++ b/lib/workers/repository/process/lookup/rollback.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../../logger'); const versioning = require('../../../../versioning'); module.exports = { diff --git a/lib/workers/repository/process/sort.js b/lib/workers/repository/process/sort.js index 6932c9dad0..807101f240 100644 --- a/lib/workers/repository/process/sort.js +++ b/lib/workers/repository/process/sort.js @@ -1,3 +1,5 @@ +const { logger } = require('../../../logger'); + module.exports = { sortBranches }; function sortBranches(branches) { diff --git a/lib/workers/repository/process/write.js b/lib/workers/repository/process/write.js index 8382ad90c2..f72d032f74 100644 --- a/lib/workers/repository/process/write.js +++ b/lib/workers/repository/process/write.js @@ -1,3 +1,4 @@ +const { logger } = require('../../../logger'); const branchWorker = require('../../branch'); const { getPrsRemaining } = require('./limits'); diff --git a/lib/workers/repository/updates/branchify.js b/lib/workers/repository/updates/branchify.js index 22355369ae..0f916163ec 100644 --- a/lib/workers/repository/updates/branchify.js +++ b/lib/workers/repository/updates/branchify.js @@ -1,6 +1,7 @@ const handlebars = require('handlebars'); const slugify = require('slugify'); const cleanGitRef = require('clean-git-ref').clean; +const { logger, setMeta } = require('../../../logger'); const { generateBranchConfig } = require('./generate'); const { flattenUpdates } = require('./flatten'); @@ -81,7 +82,7 @@ function branchifyUpgrades(config, packageFiles) { } logger.debug(`Returning ${Object.keys(branchUpgrades).length} branch(es)`); for (const branchName of Object.keys(branchUpgrades)) { - logger.setMeta({ + setMeta({ repository: config.repository, branch: branchName, }); @@ -89,7 +90,7 @@ function branchifyUpgrades(config, packageFiles) { branch.branchName = branchName; branches.push(branch); } - logger.setMeta({ + setMeta({ repository: config.repository, }); logger.debug(`config.repoIsOnboarded=${config.repoIsOnboarded}`); diff --git a/lib/workers/repository/updates/generate.js b/lib/workers/repository/updates/generate.js index d92b4d1caf..2ad6f86dbe 100644 --- a/lib/workers/repository/updates/generate.js +++ b/lib/workers/repository/updates/generate.js @@ -2,6 +2,7 @@ const handlebars = require('handlebars'); const { DateTime } = require('luxon'); const semver = require('semver'); const mdTable = require('markdown-table'); +const { logger } = require('../../../logger'); const { mergeChildConfig } = require('../../../config'); function ifTypesGroup(depNames, hasGroupName, branchUpgrades) { diff --git a/test/datasource/maven.spec.js b/test/datasource/maven.spec.js index d366f25fee..5f5792b60d 100644 --- a/test/datasource/maven.spec.js +++ b/test/datasource/maven.spec.js @@ -2,9 +2,6 @@ const nock = require('nock'); const fs = require('fs'); const datasource = require('../../lib/datasource'); -const { initLogger } = require('../../lib/logger'); - -initLogger(); const MYSQL_VERSIONS = [ '6.0.5', diff --git a/test/datasource/sbt/index.spec.js b/test/datasource/sbt/index.spec.js index b8bc294b74..df354dd29d 100644 --- a/test/datasource/sbt/index.spec.js +++ b/test/datasource/sbt/index.spec.js @@ -3,9 +3,6 @@ const fs = require('fs'); const nock = require('nock'); const { getPkgReleases } = require('../../../lib/datasource/sbt'); -const { initLogger } = require('../../../lib/logger'); - -initLogger(); const { DEFAULT_MAVEN_REPO } = require('../../../lib/manager/maven/extract'); const { diff --git a/test/globals.js b/test/globals.js index 6fd4ea9d90..d9b8cd0ef9 100644 --- a/test/globals.js +++ b/test/globals.js @@ -4,7 +4,7 @@ const os = require('os'); const cache = require('../lib/workers/global/cache'); global.platform = jest.genMockFromModule('../lib/platform/github'); -global.logger = require('./logger/_fixtures'); +jest.mock('../lib/logger'); global.repoCache = {}; diff --git a/test/logger/__snapshots__/pretty-stdout.spec.js.snap b/test/logger/__snapshots__/pretty-stdout.spec.ts.snap similarity index 51% rename from test/logger/__snapshots__/pretty-stdout.spec.js.snap rename to test/logger/__snapshots__/pretty-stdout.spec.ts.snap index f00fbfb156..1a944e5b5f 100644 --- a/test/logger/__snapshots__/pretty-stdout.spec.js.snap +++ b/test/logger/__snapshots__/pretty-stdout.spec.ts.snap @@ -1,5 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`logger/pretty-stdout formatRecord(rec) formats record 1`] = ` +"[90mTRACE[39m: test message + \\"config\\": {\\"a\\": \\"b\\", \\"d\\": [\\"e\\", \\"f\\"]} +" +`; + exports[`logger/pretty-stdout getDetails(rec) supports a config 1`] = ` " \\"config\\": {\\"a\\": \\"b\\", \\"d\\": [\\"e\\", \\"f\\"]} " diff --git a/test/logger/_fixtures/index.js b/test/logger/_fixtures/index.js deleted file mode 100644 index 9a77f8e0be..0000000000 --- a/test/logger/_fixtures/index.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - fatal: jest.fn(), - error: jest.fn(), - warn: jest.fn(), - info: jest.fn(), - debug: jest.fn(), - trace: jest.fn(), - setMeta: jest.fn(), - levels: jest.fn(), - addStream: jest.fn(), -}; diff --git a/test/logger/index.spec.js b/test/logger/index.spec.js deleted file mode 100644 index 38e3d9584e..0000000000 --- a/test/logger/index.spec.js +++ /dev/null @@ -1,32 +0,0 @@ -const { initLogger } = require('../../lib/logger'); - -describe('logger', () => { - it('inits', () => { - delete global.logger; - delete process.env.LOG_LEVEL; - initLogger(); - expect(global.logger).toBeDefined(); - }); - it('supports logging with metadata', () => { - global.logger.debug({ some: 'meta' }, 'some meta'); - }); - it('supports logging with only metadata', () => { - global.logger.debug({ some: 'meta' }); - }); - it('supports logging without metadata', () => { - global.logger.debug('some meta'); - }); - it('sets levels', () => { - global.logger.levels('stdout', 'DEBUG'); - }); - it('sets meta', () => { - global.logger.setMeta({ some: 'meta', and: 'more' }); - }); - it('adds stream', () => { - global.logger.addStream({ - name: 'logfile', - path: 'fatal.log', - level: 'fatal', - }); - }); -}); diff --git a/test/logger/index.spec.ts b/test/logger/index.spec.ts new file mode 100644 index 0000000000..2521befed3 --- /dev/null +++ b/test/logger/index.spec.ts @@ -0,0 +1,26 @@ +import { logger, setMeta, levels } from '../../lib/logger'; + +jest.unmock('../../lib/logger'); + +describe('logger', () => { + it('inits', () => { + expect(logger).toBeDefined(); + }); + it('supports logging with metadata', () => { + logger.debug({ some: 'meta' }, 'some meta'); + }); + it('supports logging with only metadata', () => { + logger.debug({ some: 'meta' }); + }); + it('supports logging without metadata', () => { + logger.debug('some meta'); + }); + + it('sets meta', () => { + setMeta({ any: 'test' }); + }); + + it('sets level', () => { + levels('stdout', 'debug'); + }); +}); diff --git a/test/logger/pretty-stdout.spec.js b/test/logger/pretty-stdout.spec.ts similarity index 50% rename from test/logger/pretty-stdout.spec.js rename to test/logger/pretty-stdout.spec.ts index 41f350b5b3..f38dd60019 100644 --- a/test/logger/pretty-stdout.spec.js +++ b/test/logger/pretty-stdout.spec.ts @@ -1,26 +1,26 @@ -const chalk = require('chalk'); -const prettyStdout = require('../../lib/logger/pretty-stdout'); +import chalk from 'chalk'; +import * as prettyStdout from '../../lib/logger/pretty-stdout'; describe('logger/pretty-stdout', () => { describe('getMeta(rec)', () => { it('returns empty string if null rec', () => { - expect(prettyStdout.getMeta(null)).toEqual(''); + expect(prettyStdout.getMeta(null as any)).toEqual(''); }); it('returns empty string if empty rec', () => { - expect(prettyStdout.getMeta({})).toEqual(''); + expect(prettyStdout.getMeta({} as any)).toEqual(''); }); it('returns empty string if no meta fields', () => { const rec = { foo: 'bar', }; - expect(prettyStdout.getMeta(rec)).toEqual(''); + expect(prettyStdout.getMeta(rec as any)).toEqual(''); }); it('supports single meta', () => { const rec = { foo: 'bar', repository: 'a/b', }; - expect(prettyStdout.getMeta(rec)).toEqual( + expect(prettyStdout.getMeta(rec as any)).toEqual( chalk.gray(' (repository=a/b)') ); }); @@ -29,25 +29,26 @@ describe('logger/pretty-stdout', () => { foo: 'bar', branch: 'c', repository: 'a/b', + module: 'test', }; - expect(prettyStdout.getMeta(rec)).toEqual( - chalk.gray(' (repository=a/b, branch=c)') + expect(prettyStdout.getMeta(rec as any)).toEqual( + chalk.gray(' (repository=a/b, branch=c) [test]') ); }); }); describe('getDetails(rec)', () => { it('returns empty string if null rec', () => { - expect(prettyStdout.getDetails(null)).toEqual(''); + expect(prettyStdout.getDetails(null as any)).toEqual(''); }); it('returns empty string if empty rec', () => { - expect(prettyStdout.getDetails({})).toEqual(''); + expect(prettyStdout.getDetails({} as any)).toEqual(''); }); it('returns empty string if all are meta fields', () => { const rec = { branch: 'bar', v: 0, }; - expect(prettyStdout.getDetails(rec)).toEqual(''); + expect(prettyStdout.getDetails(rec as any)).toEqual(''); }); it('supports a config', () => { const rec = { @@ -57,7 +58,21 @@ describe('logger/pretty-stdout', () => { d: ['e', 'f'], }, }; - expect(prettyStdout.getDetails(rec)).toMatchSnapshot(); + expect(prettyStdout.getDetails(rec as any)).toMatchSnapshot(); + }); + }); + describe('formatRecord(rec)', () => { + it('formats record', () => { + const rec: prettyStdout.BunyanRecord = { + level: 10, + msg: 'test message', + v: 0, + config: { + a: 'b', + d: ['e', 'f'], + }, + }; + expect(prettyStdout.formatRecord(rec)).toMatchSnapshot(); }); }); }); diff --git a/test/manager/gradle/index.spec.js b/test/manager/gradle/index.spec.js index 51af463737..6575cb2e48 100644 --- a/test/manager/gradle/index.spec.js +++ b/test/manager/gradle/index.spec.js @@ -5,9 +5,6 @@ const { toUnix } = require('upath'); const fs = require('fs-extra'); const fsReal = require('fs'); const { exec } = require('child-process-promise'); -const { initLogger } = require('../../../lib/logger'); - -initLogger(); const manager = require('../../../lib/manager/gradle/index'); diff --git a/test/workers/repository/error.spec.js b/test/workers/repository/error.spec.js index 9615dc505d..504c41b26d 100644 --- a/test/workers/repository/error.spec.js +++ b/test/workers/repository/error.spec.js @@ -1,4 +1,4 @@ -const { handleError } = require('../../../lib/workers/repository/error'); +import handleError from '../../../lib/workers/repository/error'; jest.mock('../../../lib/workers/repository/error-config'); diff --git a/tsconfig.json b/tsconfig.json index 75953254b3..814df428d8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,5 +15,5 @@ "types": ["node", "jest"] }, "include": ["lib/**/*", "test/**/*"], - "exclude": ["node_modules", "./.cache", "./dist"] + "exclude": ["node_modules", "./.cache", "./dist", "**/__mocks__/*"] } -- GitLab