UNPKG

enchanted-next-router

Version:

✨ Polished API for Next.js Router

2 lines (1 loc) 1.13 kB
Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("next/router"),t=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,u=function(){return(u=Object.assign||function(e){for(var r,t=1,u=arguments.length;t<u;t++)for(var n in r=arguments[t])Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);return e}).apply(this,arguments)};function n(e,r){return Object.keys(r).reduce(function(e,r){return r in e&&delete e[r],e},u({},e))}function a(e,r){return t.push(e,void 0,r)}function o(e,r){return t.replace(e,void 0,r)}var s=Object.assign(Object.create(t),{replace:o,push:a});exports.default=s,exports.enchanteServerRouter=function(e){var r=e.params||{},t=n(e.query,r);return Object.assign(e,{params:r,query:t,fullQuery:e.query})},exports.useRouter=function(){var e=r.useRouter(),t=e.asPath.split("?"),s=t[0],c=t[1],i=e.asPath.split("#")[1],p=void 0===i?"":i,l=function(e){var r={};return e.forEach(function(t,u){var n=e.getAll(u);r[u]=1===n.length?n[0]:n}),r}(new URLSearchParams(c||"")),f=n(u({},e.query),l);return u(u({},e),{pathname:s,queryString:c,query:l,hash:p,params:f,fullQuery:e.query,push:a,replace:o})};