UNPKG

qs-like

Version:

A tiny query string parsing and stringifying library

6 lines 1.94 kB
/* * qs-like.js v1.0.1 * (c) 2018-2019 Jesse Feng * Released under the MIT License. */ var n,e;n=this,e=function(n){"use strict";var u=function(n,e){return n[n.length]=e,n};var c=function(n){return"string"==typeof n};var f=function(n){return void 0===n};var a=function(n,e){return e?n.bind(e):n};var t=function(n,e,r,t,o){t=a(t,o);for(var i=e;i<r;i++)!1===t(n[i],i,n)&&(i=r)};var s=function(n,e,r){t(n,0,n.length,e,r)};function d(n){return decodeURIComponent(n)}var v=Array.isArray;function e(n,e,r,t){var o={};if(c(n)){var i=(t=t||{}).decodeURIComponent||d;!function(n,e,r,t){var o="",i="",u=!1;s(n,function(n){switch(n){case"?":return void(i=o="");case e:return u&&o&&t(o,i),u=!1,void(i=o="");case r:return u=!0,void(i="");case"#":return!1;default:u?i+=n:o+=n}}),u&&o&&t(o,i)}(n,e=e||"&",r=r||"=",function(n,e){e=i(e);var r=o[n];f(r)?o[n]=e:v(r)?u(r,e):o[n]=[r,e]})}return o}var p=function(n){return null!==n&&"object"==typeof n};var l=function(n,e,r){e=a(e,r);for(var t=Object.keys(n),o=t.length,i=0,u=void 0;i<o;i++)!1===e(n[u=t[i]],u,n)&&(i=o)},r=/[!'()*]/g;function o(n){return"%"+n.charCodeAt(0).toString(16).toUpperCase()}function y(n){return encodeURIComponent(n).replace(r,o)}var i=JSON.stringify;function g(n,e){switch(typeof n){case"string":return e(n);case"number":if(isNaN(n))return"";case"boolean":return n.toString();case"object":return null===n?"":e(i(n));case"undefined":return"";default:return e(n.toString())}}var h=Array.isArray;function b(n,e,r,t){if(p(n)){e=e||"&",r=r||"=";var o=(t=t||{}).encodeURIComponent||y,i=[];return l(n,function(n,e){e&&(h(n)?n.forEach(function(n){u(i,e+r+g(n,o))}):u(i,e+r+g(n,o)))}),i.join(e)}return""}n.decode=e,n.encode=b,n.escape=y,n.parse=e,n.prefix=function(n,e){return e=e||"?",n?0===n.indexOf(e)?n:e+n:n},n.stringify=b,n.unescape=d},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n=n||self).qsLike={});