From 16d5c6ddf0c6be093e4b3d83c5edcfba2244b1be Mon Sep 17 00:00:00 2001 From: Sergei Zharinov <zharinov@users.noreply.github.com> Date: Thu, 28 Nov 2024 13:29:27 -0300 Subject: [PATCH] refactor: Make `parseUrl` utility idempotent (#32792) --- lib/util/url.spec.ts | 1 + lib/util/url.ts | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/util/url.spec.ts b/lib/util/url.spec.ts index 0ed4143cb6..e1ed216102 100644 --- a/lib/util/url.spec.ts +++ b/lib/util/url.spec.ts @@ -116,6 +116,7 @@ describe('util/url', () => { expect(url?.protocol).toBe('https:'); expect(url?.host).toBe('github.com'); expect(url?.pathname).toBe('/renovatebot/renovate'); + expect(parseUrl(url)).toBe(url); }); it('trimTrailingSlash', () => { diff --git a/lib/util/url.ts b/lib/util/url.ts index 49d92dc0de..d9886939dc 100644 --- a/lib/util/url.ts +++ b/lib/util/url.ts @@ -97,11 +97,15 @@ export function isHttpUrl(url: unknown): boolean { } } -export function parseUrl(url: string | undefined | null): URL | null { +export function parseUrl(url: URL | string | undefined | null): URL | null { if (!url) { return null; } + if (url instanceof URL) { + return url; + } + try { return new URL(url); } catch { -- GitLab