From 43c91ca4f917a4595e4de96397708589ec67df69 Mon Sep 17 00:00:00 2001 From: John Kaster Date: Wed, 6 Apr 2022 20:20:47 +0000 Subject: [PATCH] fix: encodeParam returned [object Object] for object types Now the object value is stringified JSON --- packages/sdk-rtl/src/transport.spec.ts | 3 +++ packages/sdk-rtl/src/transport.ts | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/sdk-rtl/src/transport.spec.ts b/packages/sdk-rtl/src/transport.spec.ts index 77444127e..ee8e2224a 100644 --- a/packages/sdk-rtl/src/transport.spec.ts +++ b/packages/sdk-rtl/src/transport.spec.ts @@ -61,5 +61,8 @@ describe('Transport', () => { expect(encodeParam('foo/bar')).toEqual('foo%2Fbar') expect(encodeParam(true)).toEqual('true') expect(encodeParam(2.3)).toEqual('2.3') + expect(encodeParam({ created_date: 'this year to second' })).toEqual( + '{"created_date":"this year to second"}' + ) }) }) diff --git a/packages/sdk-rtl/src/transport.ts b/packages/sdk-rtl/src/transport.ts index f7624de09..20959c36b 100644 --- a/packages/sdk-rtl/src/transport.ts +++ b/packages/sdk-rtl/src/transport.ts @@ -380,7 +380,9 @@ export function encodeParam(value: any) { if (value instanceof Date) { value = value.toISOString() } - let encoded = value.toString() + // check for object type to prevent "[object Object]" as the value.toString() + let encoded = + typeof value === 'object' ? JSON.stringify(value) : value.toString() // decodeURIComponent throws URIError if there is a % character // without it being part of an encoded