UNPKG

next-safe-navigation

Version:
2 lines 2.42 kB
"use strict";var P=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var $=(a,e)=>{for(var r in e)P(a,r,{get:e[r],enumerable:!0})},Z=(a,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of l(e))!z.call(a,n)&&n!==r&&P(a,n,{get:()=>e[n],enumerable:!(i=y(e,n))||i.enumerable});return a};var C=a=>Z(P({},"__esModule",{value:!0}),a);var B={};$(B,{createNavigationConfig:()=>x});module.exports=C(B);var m=require("next/navigation");function f(a){return a?[...a.entries()].reduce((e,[r,i])=>{let n=a.getAll(r);return e[r]=n.length>1?n:i,e},{}):{}}function g(a){let e=new URLSearchParams;for(let[r,i]of Object.entries(a)){if(Array.isArray(i)){for(let n of i)e.append(r,`${n}`);continue}e.append(r,`${i}`)}return e}var p=/\[{1,2}([^[\]]+)]{1,2}/g,k=/[^[.].+[^\]]/;function R(a,e){if(a.startsWith("/")||(a=`/${a}`),p.test(a)&&!e?.params)throw new Error(`Validation missing for path params: "${a}"`);let n=s=>{let{search:o={},...t}=s??{},c=a.replace(p,(h,S)=>{let v=k.exec(S)?.[0],d=t[v??S];return Array.isArray(d)?d.join("/"):d??h}),u=g(o);return u.entries().next().done?c:[c,u.toString()].join("?")};return n.getSchemas=()=>({params:e?.params,search:e?.search}),n}function x(a){let e=a(R),r=new Map;for(let[s,o]of Object.entries(e)){let t=o.getSchemas();if(o.getSchemas=void 0,(t.params!=null||t.search!=null)&&r.set(s,t),t.params){let c=t.params;o.$parseParams=u=>{let h=c.safeParse(u);if(!h.success)throw new Error(`Invalid route params for route "${s}": ${h.error.message}`);return h.data}}if(t.search){let c=t.search;o.$parseSearchParams=u=>{let h=c.safeParse(u);if(!h.success)throw new Error(`Invalid search params for route "${s}": ${h.error.message}`);return h.data}}}function i(s){let o=r.get(s);if(!o?.params)throw new Error(`Route "${s}" does not have params validation`);let t=o.params.safeParse((0,m.useParams)());if(!t.success)throw new Error(`Invalid route params for route "${s}": ${t.error.message}`);return t.data}function n(s){let o=r.get(s);if(!o?.search)throw new Error(`Route "${s}" does not have searchParams validation`);let t=o.search.safeParse(f((0,m.useSearchParams)()));if(!t.success)throw new Error(`Invalid search params for route "${s}": ${t.error.message}`);return t.data}return{routes:e,useSafeParams:i,useSafeSearchParams:n}}0&&(module.exports={createNavigationConfig}); //# sourceMappingURL=index.js.map