diff --git a/packages/utils/parse.ts b/packages/utils/parse.ts index fcf8b9d61..9ba3252ab 100644 --- a/packages/utils/parse.ts +++ b/packages/utils/parse.ts @@ -49,23 +49,25 @@ export const configuredXss = new FilterXSS({ }, ] - const url = new URL(value) + try { + const url = new URL(value) - for (const source of allowedSources) { - if (!source.url.test(url.href)) { - continue - } - - const newSearchParams = new URLSearchParams(url.searchParams) - url.searchParams.forEach((value, key) => { - if (!source.allowedParameters.some((param) => param.test(`${key}=${value}`))) { - newSearchParams.delete(key) + for (const source of allowedSources) { + if (!source.url.test(url.href)) { + continue } - }) - url.search = newSearchParams.toString() - return `${name}="${escapeAttrValue(url.toString())}"` - } + const newSearchParams = new URLSearchParams(url.searchParams) + url.searchParams.forEach((value, key) => { + if (!source.allowedParameters.some((param) => param.test(`${key}=${value}`))) { + newSearchParams.delete(key) + } + }) + + url.search = newSearchParams.toString() + return `${name}="${escapeAttrValue(url.toString())}"` + } + } catch {} } // For Highlight.JS