mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-01 09:47:56 +08:00
R=jacktfranklin@chromium.org Bug: 1213034 Change-Id: I5da8225f60b53870a1c67d6b5d02a464c08f4eb2 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2917088 Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
54 lines
878 B
JavaScript
54 lines
878 B
JavaScript
"use strict";
|
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
|
|
|
|
|
|
function parseQuery(urlObj, options)
|
|
{
|
|
urlObj.query.string.full = stringify(urlObj.query.object, false);
|
|
|
|
// TWEAK :: condition only for speed optimization
|
|
if (options.removeEmptyQueries)
|
|
{
|
|
urlObj.query.string.stripped = stringify(urlObj.query.object, true);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function stringify(queryObj, removeEmptyQueries)
|
|
{
|
|
var count = 0;
|
|
var str = "";
|
|
|
|
for (var i in queryObj)
|
|
{
|
|
if ( i!=="" && hasOwnProperty.call(queryObj, i)===true )
|
|
{
|
|
var value = queryObj[i];
|
|
|
|
if (value !== "" || !removeEmptyQueries)
|
|
{
|
|
str += (++count===1) ? "?" : "&";
|
|
|
|
i = encodeURIComponent(i);
|
|
|
|
if (value !== "")
|
|
{
|
|
str += i +"="+ encodeURIComponent(value).replace(/%20/g,"+");
|
|
}
|
|
else
|
|
{
|
|
str += i;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return str;
|
|
}
|
|
|
|
|
|
|
|
module.exports = parseQuery;
|