h-query-api
Version:
An API for JavaScript to simply parse and handle URL parameters
2 lines (1 loc) • 4.46 kB
JavaScript
;function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},r(t)}function t(r,t){return function(r){if(Array.isArray(r))return r}(r)||function(r,t){var n=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null==n)return;var e,o,i=[],u=!0,a=!1;try{for(n=n.call(r);!(u=(e=n.next()).done)&&(i.push(e.value),!t||i.length!==t);u=!0);}catch(r){a=!0,o=r}finally{try{u||null==n.return||n.return()}finally{if(a)throw o}}return i}(r,t)||e(r,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(r){return function(r){if(Array.isArray(r))return o(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||e(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function e(r,t){if(r){if("string"==typeof r)return o(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(r,t):void 0}}function o(r,t){(null==t||t>r.length)&&(t=r.length);for(var n=0,e=new Array(t);n<t;n++)e[n]=r[n];return e}function i(r,t){return t.parseNumbers&&!Number.isNaN(Number(r))&&"string"==typeof r&&""!==r.trim()?r=Number(r):!t.parseBooleans||null===r||"true"!==r.toLowerCase()&&"false"!==r.toLowerCase()||(r="true"===r.toLowerCase()),r}function u(t){return Array.isArray(t)?t.sort():"object"===r(t)?u(Object.keys(t)).sort((function(r,t){return Number(r)-Number(t)})).map((function(r){return t[r]})):t}Object.defineProperty(exports,"__esModule",{value:!0});function a(r,t){return t.encode?encodeURIComponent(r):r}function l(r,t){return t.decode?decodeURIComponent(r):r}var s=function(r){return function(t,e){return void 0===e||options.skipNull&&null===e||options.skipEmptyString&&""===e?t:[].concat(n(t),null===e?[a(r,options)]:[[a(r,options),"=",a(e,options)].join("")])}};function c(n,o){o=Object.assign({decode:!1,parseNumbers:!1,parseBooleans:!1,sort:!1},o);var a=function(r,t,n){void 0!==n[r]?n[r]=[].concat(n[r],t):n[r]=t},s=Object.create(null);if(!n||"string"!=typeof n)return s;if(!(n=n.trim().replace(/^[?#&]/,"")))return s;var c,f=function(r,t){var n="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!n){if(Array.isArray(r)||(n=e(r))||t&&r&&"number"==typeof r.length){n&&(r=n);var o=0,i=function(){};return{s:i,n:function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}},e:function(r){throw r},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,a=!0,l=!1;return{s:function(){n=n.call(r)},n:function(){var r=n.next();return a=r.done,r},e:function(r){l=!0,u=r},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw u}}}}(n.split("&"));try{for(f.s();!(c=f.n()).done;){var y=c.value;if(""!==y){var p=t(y.split("="),2),b=p[0],m=p[1];m=void 0===m?null:l(m,o),a(l(b,o),m,s)}}}catch(r){f.e(r)}finally{f.f()}for(var d=0,v=Object.keys(s);d<v.length;d++){var h=v[d],j=s[h];if("object"===r(j)&&null!==j)for(var g=0,S=Object.keys(j);g<S.length;g++){var A=S[g];j[A]=i(j[A],o)}else s[h]=i(j,o)}return!1===o.sort?s:(!0===o.sort?Object.keys(s).sort():Object.keys(s).sort(o.sort)).reduce((function(t,n){var e=s[n];return Boolean(e)&&"object"===r(e)&&!Array.isArray(e)?t[n]=u(e):t[n]=e,t}),Object.create(null))}var f=function(r,t){if(!r)return"";t=Object.assign({encode:!1,strict:!0,isEmpty:!0,skipNull:!1,skipEmptyString:!1,sort:function(r,t){return t-r}},t);for(var n=function(n){return t.skipNull&&null==r[n]||t.skipEmptyString&&""===r[n]},e=s(t),o={},i=0,u=Object.keys(r);i<u.length;i++){var l=u[i];n(l)||(o[l]=r[l])}var c=Object.keys(o);return!1!==t.sort&&c.sort(t.sort),c.map((function(n){var o=r[n];return!t.isEmpty||""!==o&&null!=o?null==o?a(n,t)+"=":Array.isArray(o)?o.reduce(e(n),[]).join("&"):a(n,t)+"="+a(o,t):""})).filter((function(r){return r.length>0})).join("&")},y={parse:c,stringify:f};exports.default=y,exports.parse=c,exports.stringify=f;