From 007ff684e40a0a78b538a99647e84101ac37e693 Mon Sep 17 00:00:00 2001 From: Tim Yiu <137842098+tyiuhc@users.noreply.github.com> Date: Mon, 23 Dec 2024 12:49:58 -0800 Subject: [PATCH] fix: catch error in getUrlParam() in DefaultUserProvider (#150) --- .../experiment-browser/src/providers/default.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/experiment-browser/src/providers/default.ts b/packages/experiment-browser/src/providers/default.ts index 1d5e711..ca4ae5e 100644 --- a/packages/experiment-browser/src/providers/default.ts +++ b/packages/experiment-browser/src/providers/default.ts @@ -119,14 +119,20 @@ export class DefaultUserProvider implements ExperimentUserProvider { private getUrlParam(): Record { if (!this.globalScope) { - return {}; + return undefined; } const params: Record = {}; - for (const [name, value] of new URL(this.globalScope?.location?.href) - .searchParams) { - params[name] = [...(params[name] ?? []), ...value.split(',')]; + + try { + const url = new URL(this.globalScope.location.href); + for (const [name, value] of url.searchParams) { + params[name] = [...(params[name] ?? []), ...value.split(',')]; + } + } catch (error) { + return undefined; } + return Object.entries(params).reduce>( (acc, [name, value]) => { acc[name] = value.length == 1 ? value[0] : value;