{"ScriptPreparationCode":null,"TestCases":[{"Name":"Reduce","Code":"const excludedFields = [\u0027page\u0027, \u0027sort\u0027, \u0027limit\u0027, \u0027fields\u0027]\r\nconst input = {\r\n price: {\r\n gte: 500\r\n },\r\n page: 5\r\n}\r\n const transform = obj =\u003E\r\n Object.entries(obj).reduce(\r\n (acc, [val, key]) =\u003E ({ ...acc, [\u0060$${val}\u0060]: key }),\r\n {}\r\n )\r\n\r\n const output = Object.entries(input).reduce(\r\n (acc, [key, val]) =\u003E\r\n excludedFields.includes(key)\r\n ? { ...acc }\r\n : { ...acc, [key]: val instanceof Object ? transform(val) : val },\r\n {}\r\n )\r\n \r\n console.log(output)","IsDeferred":false},{"Name":"Regex","Code":"const excludedFields = [\u0027page\u0027, \u0027sort\u0027, \u0027limit\u0027, \u0027fields\u0027]\r\nconst input = {\r\n price: {\r\n gte: 500\r\n },\r\n page: 5\r\n };\r\n\r\nconst queryObj = { ...input }\r\n\r\n excludedFields.forEach(el =\u003E delete queryObj[el])\r\n\r\n let filterQuery = JSON.stringify(queryObj)\r\n filterQuery = filterQuery.replace(\r\n /\\b(gte|gt|lte|lt)\\b/g,\r\n match =\u003E \u0060$${match}\u0060\r\n )\r\n\r\n const output = JSON.parse(filterQuery)\r\n \r\nconsole.log(output)","IsDeferred":false}]}