welsonjs/lib/uri.js

50 lines
1.5 KiB
JavaScript
Raw Normal View History

2020-07-27 02:31:52 +00:00
//////////////////////////////////////////////////////////////////////////////////
//
// uri.js
//
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
// Private APIs / Utility functions
/////////////////////////////////////////////////////////////////////////////////
exports.VERSIONINFO = "URI Lib (uri.js) version 0.1";
exports.global = global;
exports.require = global.require;
/////////////////////////////////////////////////////////////////////////////////
// exports.parseQueryString
/////////////////////////////////////////////////////////////////////////////////
exports.parseQueryString = function(queryString) {
var query = {};
var pairs = [];
if(queryString.substring(0, 1) == '?') {
pairs = queryString.substring(1).split('&');
} else {
pairs = queryString.split('&');
}
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
var _k = decodeURIComponent(pair[0]);
var _v = decodeURIComponent(pair[1] || '');
var path = _k.split('[').map(function(s) {
return (s.indexOf(']') < 0 ? s : s.substring(0, s.length -1));
}).join('/');
if(path in query) {
if (Array.isArray(query[path])) {
query[path].push(_v);
} else {
query[path] = [query[path], _v];
}
} else {
query[path] = _v;
}
};
return query;
};