From f9c6b36e0762c64b03fa6906603c15ee84621a65 Mon Sep 17 00:00:00 2001 From: Vikram Kalta Date: Fri, 30 Aug 2024 00:19:20 +0100 Subject: [PATCH] fix: replaced encodeUriComponent with urlsearchparams --- package-lock.json | 4 ++-- package.json | 2 +- src/core/lib/request.js | 35 ++++++++++++++++------------------- 3 files changed, 19 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9e0c2223..ab8ce4dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "contentstack", - "version": "3.20.4", + "version": "3.20.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "contentstack", - "version": "3.20.4", + "version": "3.20.5", "license": "MIT", "dependencies": { "@contentstack/utils": "^1.3.10", diff --git a/package.json b/package.json index e78239a9..17636a1f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "contentstack", - "version": "3.20.4", + "version": "3.20.5", "description": "Contentstack Javascript SDK", "homepage": "https://www.contentstack.com/", "author": { diff --git a/src/core/lib/request.js b/src/core/lib/request.js index ac77555d..239c0048 100755 --- a/src/core/lib/request.js +++ b/src/core/lib/request.js @@ -9,28 +9,25 @@ export default function Request(stack, fetchOptions) { let requestParams = stack.requestParams; return new Promise(function(resolve, reject) { let queryParams; - let serialize = function(obj, prefix) { - - let str = [], - p; - if (typeof obj === "object" && obj.length !== undefined) { - for (var i = 0, _i = obj.length; i < _i; i++) { - str.push(prefix + '[]=' + obj[i]); - } - } else { - for (const p in obj) { - let k = prefix ? prefix + "[" + p + "]" : p, - v = obj[p]; - str.push((v !== null && typeof v === "object" && p !== 'query') ? - serialize(v, k) : - k + "=" + encodeURIComponent(p !== 'query' ? v : JSON.stringify(v))); - } + + const params = new URLSearchParams(); + let serialize = function (obj, prefix) { + if (typeof obj === 'object' && obj.length !== undefined) { + for (let i = 0, _i = obj.length; i < _i; i++) { + params.append(prefix + '[]', obj[i]); + } + } else { + for (const p in obj) { + let k = prefix ? prefix + '[' + p + ']' : p, + v = obj[p]; + v !== null && typeof v === 'object' && p !== 'query' + ? serialize(v, k) + : params.append(k, p !== 'query' ? v : JSON.stringify(v)); } - return str.join("&"); + } + return params.toString(); }; - - // setting headers requestParams.headers['Content-Type'] = 'application/json; charset=UTF-8'; requestParams.headers['X-User-Agent'] = 'contentstack-delivery-javascript-{{PLATFORM}}/' + version;