////////////////////////////////////////////////////////////////////////////////// // // 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; };