UNPKG

usedjs

Version:

used.js 是一个轻量级小巧的可运行在浏览器中的 JavaScript 函数库

94 lines (93 loc) 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function parse(qs, sep, eq) { var obj = Object.create(null); if (typeof qs !== 'string' || qs.length === 0) { return obj; } sep = sep || '&'; eq = eq || '='; var params = qs.split(sep); var i = 0; var l = params.length; var _loop_1 = function () { var items = params[i].split(eq); var queryKey = items[0].trim(); var queryVal = ''; if (items.length >= 3) { items.splice(0, 1); var lastIndex_1 = items.length - 1; items.forEach(function (v, i) { v = v.trim(); if (i === lastIndex_1) { queryVal += v; } else { queryVal += v + eq; } }); } else { queryVal = items[1].trim(); } var cur = obj[queryKey]; if (cur) { if (Array.isArray(cur)) { cur.push(decodeURIComponent(queryVal)); } else { var temp = cur; obj[queryKey] = new Array(); obj[queryKey].push(temp); obj[queryKey].push(decodeURIComponent(queryVal)); } } else { obj[queryKey] = decodeURIComponent(queryVal); } }; for (; i < l; i++) { _loop_1(); } return obj; } exports.parse = parse; function stringify(obj, sep, eq) { sep = sep || '&'; eq = eq || '='; if (obj !== null && typeof obj === 'object') { var keys = Object.keys(obj); var len = keys.length; var flast = len - 1; var fields = ''; var i = 0; for (; i < len; i++) { var k = keys[i]; var v = obj[k]; var ks = k + eq; if (Array.isArray(v)) { var vlen = v.length; var vlast = vlen - 1; var j = 0; for (; j < vlen; ++j) { fields += ks + decodeURIComponent(v[j]); if (j < vlast) { fields += sep; } } if (vlen && i < flast) { fields += sep; } } else { fields += ks + decodeURIComponent(v); if (i < flast) { fields += sep; } } } return fields; } return ''; } exports.stringify = stringify;