From 517dad7434944ac046b5680c0f24af08b17cf460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <git@minelli.swiss> Date: Wed, 2 Apr 2025 17:01:55 +0200 Subject: [PATCH] Sonar => Resolve issues --- config/SharedConfig.ts | 8 +++--- helpers/Toolbox.ts | 2 +- helpers/TypeScriptExtensions.ts | 2 +- .../RecursiveFilesStats.ts | 4 +-- managers/SharedGitlabManager.ts | 4 +-- managers/SharedSonarManager.ts | 27 ++++++++++--------- 6 files changed, 23 insertions(+), 24 deletions(-) diff --git a/config/SharedConfig.ts b/config/SharedConfig.ts index 4cbfe89..3754237 100644 --- a/config/SharedConfig.ts +++ b/config/SharedConfig.ts @@ -11,14 +11,14 @@ class SharedConfig { enabled: boolean url: string token: string - } + }; constructor() { this.production = process.env.NODE_ENV === 'production'; this.sonar = { - enabled: ['yes', 'true', '1', 'on'].includes(process.env.SONAR_ENABLED?.trim()?.toLowerCase() ?? ''), - url: process.env.SONAR_URL || '', - token: process.env.SONAR_TOKEN || '' + enabled: [ 'yes', 'true', '1', 'on' ].includes(process.env.SONAR_ENABLED?.trim()?.toLowerCase() ?? ''), + url : process.env.SONAR_URL ?? '', + token : process.env.SONAR_TOKEN ?? '' }; this.logsFolder = process.env.LOGS_FOLDER ?? ''; diff --git a/helpers/Toolbox.ts b/helpers/Toolbox.ts index d0fbfd5..8b32f2a 100644 --- a/helpers/Toolbox.ts +++ b/helpers/Toolbox.ts @@ -4,7 +4,7 @@ import path from 'path'; class Toolbox { public urlToPath(url: string): string { - return url.replace(/^([a-z]{3,5}:\/{2})?[a-z.@]+(:[0-9]{1,5})?.(.*)/, '$3').replace('.git', ''); + return url.replace(/^([a-z]{3,5}:\/{2})?[a-z.@]+(:\d{1,5})?.(.*)/, '$3').replace('.git', ''); } /* diff --git a/helpers/TypeScriptExtensions.ts b/helpers/TypeScriptExtensions.ts index 0fc9c70..2762964 100644 --- a/helpers/TypeScriptExtensions.ts +++ b/helpers/TypeScriptExtensions.ts @@ -64,7 +64,7 @@ function registerStringCapitalizeName() { function registerStringConvertWithEnvVars() { String.prototype.convertWithEnvVars = function (this: string): string { - return this.replace(/\${?([a-zA-Z0-9_]+)}?/g, (_match: string, p1: string) => process.env[p1] || ''); + return this.replace(/\${?(\w+)}?/g, (_match: string, p1: string) => process.env[p1] ?? ''); }; } diff --git a/helpers/recursiveFilesStats/RecursiveFilesStats.ts b/helpers/recursiveFilesStats/RecursiveFilesStats.ts index a71bffd..eb1a01c 100644 --- a/helpers/recursiveFilesStats/RecursiveFilesStats.ts +++ b/helpers/recursiveFilesStats/RecursiveFilesStats.ts @@ -57,10 +57,10 @@ class RecursiveFilesStats { name: file, path: path.join(rootPath, file) })).filter(item => { - if ( options.include && options.include.test(item.path) ) { + if ( options.include?.test(item.path) ) { return true; } - if ( options.exclude && options.exclude.test(item.path) ) { + if ( options.exclude?.test(item.path) ) { return false; } if ( options.ignored ) { diff --git a/managers/SharedGitlabManager.ts b/managers/SharedGitlabManager.ts index 90746ed..3f29985 100644 --- a/managers/SharedGitlabManager.ts +++ b/managers/SharedGitlabManager.ts @@ -10,9 +10,7 @@ class SharedGitlabManager { private readonly refreshTokenFunction?: () => Promise<string>; setToken(token: string) { - this.api = new Gitlab(Object.assign({ - host: this.gitlabUrl ?? '' - }, this.refreshTokenFunction ? { oauthToken: token } : { token: token })); + this.api = new Gitlab({ host: this.gitlabUrl ?? '', ...(this.refreshTokenFunction ? { oauthToken: token } : { token: token }) }); } constructor(public gitlabUrl: string, token: string, public clientId?: string, public urlRedirect?: string, public urlToken?: string, refreshTokenFunction?: () => Promise<string>) { diff --git a/managers/SharedSonarManager.ts b/managers/SharedSonarManager.ts index b514161..56a3880 100644 --- a/managers/SharedSonarManager.ts +++ b/managers/SharedSonarManager.ts @@ -4,19 +4,19 @@ import SharedConfig from '../config/SharedConfig'; class SharedSonarManager { - // Use custom instance to allow self-signed certificates - private instance = axios.create({ - httpsAgent: new https.Agent({ - rejectUnauthorized: false - }) - }); + private readonly axiosInstance = axios.create({ + httpsAgent: new https.Agent({ + rejectUnauthorized: false + }) + }); + async isSonarSupported(): Promise<boolean> { - if (!SharedConfig.sonar.enabled) { + if ( !SharedConfig.sonar.enabled ) { return false; } try { - const sonar = await this.instance.get(SharedConfig.sonar.url); + const sonar = await this.axiosInstance.get(SharedConfig.sonar.url); return sonar.status == 200; } catch ( error ) { return false; @@ -29,15 +29,16 @@ class SharedSonarManager { * @param language */ mapLanguage(language: string): string { - switch (language) { - case "csharp": - return "cs"; - case "python": - return "py"; + switch ( language ) { + case 'csharp': + return 'cs'; + case 'python': + return 'py'; default: return language; } } } + export default new SharedSonarManager(); \ No newline at end of file -- GitLab