MCPcopy
hub / github.com/MithrilJS/mithril.js / parseQueryString

Function parseQueryString

mithril.js:1311–1340  ·  view source on GitHub ↗
(string)

Source from the content-addressed store, hash-verified

1309m.mount = _17(redrawService)
1310var Promise = PromisePolyfill
1311var parseQueryString = function(string) {
1312 if (string === "" || string == null) return {}
1313 if (string.charAt(0) === "?") string = string.slice(1)
1314 var entries = string.split("&"), data0 = {}, counters = {}
1315 for (var i = 0; i < entries.length; i++) {
1316 var entry = entries[i].split("=")
1317 var key5 = decodeURIComponent(entry[0])
1318 var value = entry.length === 2 ? decodeURIComponent(entry[1]) : ""
1319 if (value === "true") value = true
1320 else if (value === "false") value = false
1321 var levels = key5.split(/\]\[?|\[/)
1322 var cursor = data0
1323 if (key5.indexOf("[") > -1) levels.pop()
1324 for (var j0 = 0; j0 < levels.length; j0++) {
1325 var level = levels[j0], nextLevel = levels[j0 + 1]
1326 var isNumber = nextLevel == "" || !isNaN(parseInt(nextLevel, 10))
1327 var isValue = j0 === levels.length - 1
1328 if (level === "") {
1329 var key5 = levels.slice(0, j0).join()
1330 if (counters[key5] == null) counters[key5] = 0
1331 level = counters[key5]++
1332 }
1333 if (cursor[level] == null) {
1334 cursor[level] = isValue ? value : isNumber ? [] : {}
1335 }
1336 cursor = cursor[level]
1337 }
1338 }
1339 return data0
1340}
1341var coreRouter = function($window) {
1342 var supportsPushState = typeof $window.history.pushState === "function"
1343 var callAsync0 = typeof setImmediate === "function" ? setImmediate : setTimeout

Callers 6

parsePathFunction · 0.85
xhrMock.jsFile · 0.85
test-xhrMock.jsFile · 0.85
test-jsonp.jsFile · 0.85
parsePathFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected