diff options
Diffstat (limited to 'packages/taler-util/src/payto.ts')
-rw-r--r-- | packages/taler-util/src/payto.ts | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/taler-util/src/payto.ts b/packages/taler-util/src/payto.ts index 49caa9d6b..c5a58022d 100644 --- a/packages/taler-util/src/payto.ts +++ b/packages/taler-util/src/payto.ts @@ -63,7 +63,11 @@ export function addPaytoQueryParams( ): string { const [acct, search] = s.slice(paytoPfx.length).split("?"); const searchParams = new URLSearchParams(search || ""); - for (const k of Object.keys(params)) { + const keys = Object.keys(params) + if (keys.length === 0) { + return paytoPfx + acct + } + for (const k of keys) { searchParams.set(k, params[k]); } return paytoPfx + acct + "?" + searchParams.toString(); @@ -76,9 +80,10 @@ export function addPaytoQueryParams( * @returns */ export function stringifyPaytoUri(p: PaytoUri): string { - const url = `${paytoPfx}${p.targetType}//${p.targetPath}`; - if (p.params) { - const search = Object.entries(p.params) + const url = `${paytoPfx}${p.targetType}/${p.targetPath}`; + const paramList = !p.params ? [] : Object.entries(p.params); + if (paramList.length > 0) { + const search = paramList .map(([key, value]) => `${key}=${value}`) .join("&"); return `${url}?${search}`; |