diff --git a/.changeset/heavy-otters-hang.md b/.changeset/heavy-otters-hang.md new file mode 100644 index 00000000..701d0c36 --- /dev/null +++ b/.changeset/heavy-otters-hang.md @@ -0,0 +1,5 @@ +--- +"@farfetched/core": patch +--- + +Add workaround for Safari 14.0 bugged implementation of URL constructor diff --git a/packages/core/src/fetch/lib.ts b/packages/core/src/fetch/lib.ts index f2c5a9b5..2ead30d1 100644 --- a/packages/core/src/fetch/lib.ts +++ b/packages/core/src/fetch/lib.ts @@ -93,8 +93,14 @@ export function formatUrl( urlString = `${url}?${queryString}`; } + /** + * Workararound for Safari 14.0 + * @see https://github.com/igorkamyshev/farfetched/issues/528 + */ + const urlArgs = [urlString, urlBase].filter(Boolean) as [string, string]; + try { - return new URL(urlString, urlBase); + return new URL(...urlArgs); } catch (e) { throw configurationError({ reason: 'Invalid URL',