Skip to content

Commit

Permalink
(fix): improve error messages from url parsing (#649)
Browse files Browse the repository at this point in the history
  • Loading branch information
dsinghvi authored Apr 16, 2024
1 parent d692efe commit 79c90f4
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions servers/fdr/src/util/ParsedBaseUrl.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { LOGGER } from "../app/FdrApplication";

const HAS_HTTPS_REGEX = /^https?:\/\//i;

export class ParsedBaseUrl {
Expand All @@ -21,14 +23,19 @@ export class ParsedBaseUrl {
}

public static parse(url: string): ParsedBaseUrl {
let urlWithHttpsPrefix = url;
if (!HAS_HTTPS_REGEX.test(url)) {
urlWithHttpsPrefix = "https://" + url;
try {
let urlWithHttpsPrefix = url;
if (!HAS_HTTPS_REGEX.test(url)) {
urlWithHttpsPrefix = "https://" + url;
}
const parsedURL = new URL(urlWithHttpsPrefix);
return new ParsedBaseUrl({
hostname: parsedURL.hostname,
path: parsedURL.pathname === "/" || parsedURL.pathname === "" ? undefined : parsedURL.pathname,
});
} catch (e) {
LOGGER.error(`Failed to parse URL: ${url}`, e);
throw new Error(`Failed to parse URL: ${url}. The error was ${(e as Error)?.message}`);
}
const parsedURL = new URL(urlWithHttpsPrefix);
return new ParsedBaseUrl({
hostname: parsedURL.hostname,
path: parsedURL.pathname === "/" || parsedURL.pathname === "" ? undefined : parsedURL.pathname,
});
}
}

0 comments on commit 79c90f4

Please sign in to comment.