export function isRelativeUrl(url) { const absoluteUrlRegExp = /^(?:[a-z+]+:)?\/\//i return !absoluteUrlRegExp.test(url) } export function addQueryParamsToRedirectUrl(url, params) { const parsedUrl = new URL(url) for (const [key, value] of Object.entries(params)) { if (['language'].includes(key)) { parsedUrl.searchParams.append(key, value) } } if (params.original && isRelativeUrl(params.original)) { parsedUrl.searchParams.append('original', params.original) } if (params.invitationToken) { parsedUrl.searchParams.append( 'workspace_invitation_token', params.invitationToken ) } return parsedUrl.toString() } export function ensureUrlProtocol(value) { const protocolRegex = /^[a-zA-Z]+:\/\// if (!protocolRegex.test(value)) { return `https://${value}` } return value }