Add support for all protocols for urls (#74)

This commit is contained in:
Samuel Martineau 2021-08-21 19:08:40 +00:00 committed by GitHub
parent 8808f65b47
commit 45fb337c87

View File

@ -1,24 +1,23 @@
export const urlParser = (url: string): string[] => {
let parsedUrl: string;
let displayUrl: string;
const hasProtocol = (url: string): boolean => /^\w+:\/\//.test(url);
const isSteamUrl = (url: string): boolean => /^steam:\/\//.test(url);
const isWebUrl = (url: string): boolean => /^https?:\/\//.test(url);
if (/(https?|steam):\/\//.test(url)) {
// Url starts with http[s]:// or steam:// -> leave it as it is
parsedUrl = url;
} else {
export const urlParser = (url: string): string[] => {
if (!hasProtocol(url)) {
// No protocol -> apply http:// prefix
parsedUrl = `http://${url}`;
url = `http://${url}`;
}
// Create simplified url to display as text
if (/steam:\/\//.test(url)) {
let displayUrl: string;
if (isSteamUrl(url)) {
displayUrl = 'Run Steam App';
} else {
} else if (isWebUrl(url)) {
displayUrl = url
.replace(/https?:\/\//, '')
.replace('www.', '')
.replace(/\/$/, '');
}
} else displayUrl = url;
return [displayUrl, parsedUrl]
}
return [displayUrl, url];
};