h-query-api
Version:
An API for JavaScript to simply parse and handle URL parameters
2 lines (1 loc) • 4.71 kB
JavaScript
!function(r,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((r="undefined"!=typeof globalThis?globalThis:r||self).h=r.h||{},r.h.query=r.h.query||{},r.h.query.api={}))}(this,(function(r){"use strict";function t(r){return t="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},t(r)}function e(r,t){return function(r){if(Array.isArray(r))return r}(r)||function(r,t){var e=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null==e)return;var n,o,i=[],u=!0,a=!1;try{for(e=e.call(r);!(u=(n=e.next()).done)&&(i.push(n.value),!t||i.length!==t);u=!0);}catch(r){a=!0,o=r}finally{try{u||null==e.return||e.return()}finally{if(a)throw o}}return i}(r,t)||o(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 i(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||o(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 o(r,t){if(r){if("string"==typeof r)return i(r,t);var e=Object.prototype.toString.call(r).slice(8,-1);return"Object"===e&&r.constructor&&(e=r.constructor.name),"Map"===e||"Set"===e?Array.from(r):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?i(r,t):void 0}}function i(r,t){(null==t||t>r.length)&&(t=r.length);for(var e=0,n=new Array(t);e<t;e++)n[e]=r[e];return n}function u(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 a(r){return Array.isArray(r)?r.sort():"object"===t(r)?a(Object.keys(r)).sort((function(r,t){return Number(r)-Number(t)})).map((function(t){return r[t]})):r}function l(r,t){return t.encode?encodeURIComponent(r):r}function f(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?[l(r,options)]:[[l(r,options),"=",l(e,options)].join("")])}};function c(r,n){n=Object.assign({decode:!1,parseNumbers:!1,parseBooleans:!1,sort:!1},n);var i=function(r,t,e){void 0!==e[r]?e[r]=[].concat(e[r],t):e[r]=t},l=Object.create(null);if(!r||"string"!=typeof r)return l;if(!(r=r.trim().replace(/^[?#&]/,"")))return l;var s,c=function(r,t){var e="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!e){if(Array.isArray(r)||(e=o(r))||t&&r&&"number"==typeof r.length){e&&(r=e);var n=0,i=function(){};return{s:i,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},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(){e=e.call(r)},n:function(){var r=e.next();return a=r.done,r},e:function(r){l=!0,u=r},f:function(){try{a||null==e.return||e.return()}finally{if(l)throw u}}}}(r.split("&"));try{for(c.s();!(s=c.n()).done;){var y=s.value;if(""!==y){var p=e(y.split("="),2),b=p[0],m=p[1];m=void 0===m?null:f(m,n),i(f(b,n),m,l)}}}catch(r){c.e(r)}finally{c.f()}for(var d=0,v=Object.keys(l);d<v.length;d++){var h=v[d],j=l[h];if("object"===t(j)&&null!==j)for(var g=0,S=Object.keys(j);g<S.length;g++){var A=S[g];j[A]=u(j[A],n)}else l[h]=u(j,n)}return!1===n.sort?l:(!0===n.sort?Object.keys(l).sort():Object.keys(l).sort(n.sort)).reduce((function(r,e){var n=l[e];return Boolean(n)&&"object"===t(n)&&!Array.isArray(n)?r[e]=a(n):r[e]=n,r}),Object.create(null))}var y=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 e=function(e){return t.skipNull&&null==r[e]||t.skipEmptyString&&""===r[e]},n=s(t),o={},i=0,u=Object.keys(r);i<u.length;i++){var a=u[i];e(a)||(o[a]=r[a])}var f=Object.keys(o);return!1!==t.sort&&f.sort(t.sort),f.map((function(e){var o=r[e];return!t.isEmpty||""!==o&&null!=o?null==o?l(e,t)+"=":Array.isArray(o)?o.reduce(n(e),[]).join("&"):l(e,t)+"="+l(o,t):""})).filter((function(r){return r.length>0})).join("&")},p={parse:c,stringify:y};r.default=p,r.parse=c,r.stringify=y,Object.defineProperty(r,"__esModule",{value:!0})}));