Comparing version 2.0.0-alpha.3 to 2.0.0-alpha.4
@@ -453,2 +453,5 @@ var __create = Object.create; | ||
// src/utils/createBrowserRouter.ts | ||
var import_history4 = __toModule(require("history")); | ||
// src/utils/createRouter.ts | ||
var import_history3 = __toModule(require("history")); | ||
@@ -636,3 +639,12 @@ | ||
get: () => currentEntry, | ||
history, | ||
history: __spreadProps(__spreadValues({}, history), { | ||
push: (to, state) => history.push(__spreadValues({ | ||
hash: "", | ||
search: "" | ||
}, typeof to === "string" ? (0, import_history3.parsePath)(to) : to), state), | ||
replace: (to, state) => history.replace(__spreadValues({ | ||
hash: "", | ||
search: "" | ||
}, typeof to === "string" ? (0, import_history3.parsePath)(to) : to), state) | ||
}), | ||
isActive: (path, exact) => locationsMatch(history.location, path, exact), | ||
@@ -679,3 +691,3 @@ preloadCode: (pathname) => { | ||
return createRouter(__spreadProps(__spreadValues({}, routerOptions), { | ||
history: (0, import_history3.createBrowserHistory)(historyOptions), | ||
history: (0, import_history4.createBrowserHistory)(historyOptions), | ||
routes | ||
@@ -686,3 +698,3 @@ })); | ||
// src/utils/createHashRouter.ts | ||
var import_history4 = __toModule(require("history")); | ||
var import_history5 = __toModule(require("history")); | ||
var createHashRouter = (_a, historyOptions) => { | ||
@@ -692,3 +704,3 @@ var _b = _a, { routes } = _b, routerOptions = __objRest(_b, ["routes"]); | ||
return createRouter(__spreadProps(__spreadValues({}, routerOptions), { | ||
history: (0, import_history4.createHashHistory)(historyOptions), | ||
history: (0, import_history5.createHashHistory)(historyOptions), | ||
routes | ||
@@ -699,3 +711,3 @@ })); | ||
// src/utils/createMemoryRouter.ts | ||
var import_history5 = __toModule(require("history")); | ||
var import_history6 = __toModule(require("history")); | ||
var createMemoryRouter = (_a, historyOptions) => { | ||
@@ -705,3 +717,3 @@ var _b = _a, { routes } = _b, routerOptions = __objRest(_b, ["routes"]); | ||
return createRouter(__spreadProps(__spreadValues({}, routerOptions), { | ||
history: (0, import_history5.createMemoryHistory)(historyOptions), | ||
history: (0, import_history6.createMemoryHistory)(historyOptions), | ||
routes | ||
@@ -708,0 +720,0 @@ })); |
@@ -1,4 +0,4 @@ | ||
var Mt=Object.create;var k=Object.defineProperty,Tt=Object.defineProperties,At=Object.getOwnPropertyDescriptor,wt=Object.getOwnPropertyDescriptors,vt=Object.getOwnPropertyNames,F=Object.getOwnPropertySymbols,bt=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var G=(t,e,r)=>e in t?k(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,u=(t,e)=>{for(var r in e||(e={}))q.call(e,r)&&G(t,r,e[r]);if(F)for(var r of F(e))z.call(e,r)&&G(t,r,e[r]);return t},m=(t,e)=>Tt(t,wt(e)),J=t=>k(t,"__esModule",{value:!0});var S=(t,e)=>{var r={};for(var o in t)q.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&F)for(var o of F(t))e.indexOf(o)<0&&z.call(t,o)&&(r[o]=t[o]);return r};var Ot=(t,e)=>{J(t);for(var r in e)k(t,r,{get:e[r],enumerable:!0})},Ht=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of vt(e))!q.call(t,o)&&o!=="default"&&k(t,o,{get:()=>e[o],enumerable:!(r=At(e,o))||r.enumerable});return t},C=t=>Ht(J(k(t!=null?Mt(bt(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);Ot(exports,{Link:()=>Z,RouteRenderer:()=>rt,RouterProvider:()=>ot,SuspenseResource:()=>A,createBrowserRouter:()=>ht,createHashRouter:()=>Rt,createMemoryRouter:()=>gt,useHistory:()=>nt,useNavigation:()=>it,useRouter:()=>ct});var M=C(require("react"));var Q=C(require("history")),X=C(require("react")),y=()=>{throw new Error("RouterContext was called outside of RouterProvider.")},b=t=>t.warmRoute!==y,Nt={assistPreload:!1,awaitComponent:!1,get:y,history:{action:Q.Action.Push,back:y,block:y,createHref:y,forward:y,go:y,listen:y,location:{hash:"",key:"",pathname:"",search:"",state:null},push:y,replace:y},isActive:y,preloadCode:y,routeTransitionCompleted:y,subscribe:y,warmRoute:y},x=(0,X.createContext)(Nt);var Ut=0,kt=t=>Boolean(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey),It=t=>!t.defaultPrevented&&t.button===Ut&&(!t.currentTarget.target||t.currentTarget.target==="_self")&&!kt(t),Z=(0,M.forwardRef)((c,g)=>{var a=c,{activeClassName:t="is-active",children:e,className:r,exact:o=!1,to:s,onClick:i,onFocus:n,onKeyDown:d,onMouseDown:p,onMouseEnter:l}=a,R=S(a,["activeClassName","children","className","exact","to","onClick","onFocus","onKeyDown","onMouseDown","onMouseEnter"]);let{history:h,isActive:f,preloadCode:v,warmRoute:_}=(0,M.useContext)(x),T=h.createHref(s),Y=f(s,o),Pt=(0,M.useCallback)(P=>{try{i==null||i(P)}catch(B){throw P.preventDefault(),B}if(It(P)){P.preventDefault();let B=f(s,!0)?"replace":"push";h[B](s)}},[h,f,i,s]),xt=(0,M.useCallback)(P=>{v(T),n==null||n(P)},[T,n,v]),Ct=(0,M.useCallback)(P=>{_(T),d==null||d(P)},[T,d,_]),Et=(0,M.useCallback)(P=>{v(T),l==null||l(P)},[T,l,v]),St=(0,M.useCallback)(P=>{_(T),p==null||p(P)},[T,p,_]);return React.createElement("a",m(u({ref:g},R),{"aria-current":Y?"page":void 0,className:[r,Y?t:null].filter(Boolean).join(" "),href:T,onClick:Pt,onFocus:xt,onKeyDown:Ct,onMouseDown:St,onMouseEnter:Et}),e)});var E=C(require("react"));var A=class{constructor(e){this.result=null;this.error=null;this.promise=null;this.loader=e}async load(){if(this.result!==null)return this.result;if(this.promise!==null)return this.promise;this.promise=this.loader();try{let e=await this.promise;return this.result=e,e}catch(e){throw this.error=e,e}}read(){if(this.result!==null)return this.result;throw this.error!==null?this.error:this.promise!==null?this.promise:this.load()}};var O=t=>{let e=[];for(let r in t)!Object.prototype.hasOwnProperty.call(t,r)||e.push(r);return e.sort((r,o)=>r>o?1:-1).reduce((r,o)=>{let s=t[o];if(!s)return r;let i=Array.isArray(s)?s.sort((n,d)=>n>d?1:-1).map(n=>encodeURIComponent(n)).join(`&${o}=`):encodeURIComponent(s);return`${r}${r?"&":"?"}${o}=${i}`},"")};var w={parametersString:"",pathname:"",value:null},D=t=>typeof t=="function",K=t=>t instanceof Map,tt=t=>K(t.preloaded),Wt=({route:t,params:e,search:r},o)=>{var n;let s=new Map,i=(n=t.preload)==null?void 0:n.call(t,e,r);for(let d in i){if(!Object.prototype.hasOwnProperty.call(i,d))continue;let p=i[d];if(p===void 0)continue;let l=D(p)?p:p.data,R=new A(l);R.load(),s.set(d,{data:R,defer:!D(p)&&p.defer!==void 0?p.defer:!o})}return s};function $(t,e=!1,r=!1){var g,c;let{route:o,params:s,search:i,location:n}=t,d=n.pathname===w.pathname,p=O(s);if(e&&d&&p===w.parametersString&&w.value!==null)return w.value;o.component.load();let l={component:o.component,location:n,params:s,search:i};if(e){let a=o.preload&&Wt(t,r),h=m(u({},l),{preloaded:a});return a&&(w.pathname=(g=n.pathname)!=null?g:"",w.parametersString=O(s),w.value=h),h}return m(u({},l),{preloaded:(c=o.preload)==null?void 0:c.call(o,s,i)})}var et=(t,e)=>{switch(e.type){case"START_ROUTE_TRANSITION":return m(u({},t),{isTransitioning:!0});case"FINISH_ROUTE_TRANSITION":return u(m(u({},t),{isTransitioning:!1}),e.payload);default:return t}};var Lt=t=>{let e={component:t.component,location:t.location,props:{params:t.params,search:t.search}};if(K(t.preloaded)){let r={};for(let[o,s]of t.preloaded.entries())r[o]=s.data;return m(u({},e),{props:m(u({},e.props),{preloaded:r})})}return m(u({},e),{props:m(u({},e.props),{preloaded:t.preloaded})})},rt=({pendingIndicator:t})=>{let{awaitComponent:e,get:r,history:o,routeTransitionCompleted:s,subscribe:i}=(0,E.useContext)(x),[{isTransitioning:n,historyUpdate:d,routeEntry:p},l]=(0,E.useReducer)(et,{historyUpdate:{action:o.action,location:o.location},isTransitioning:!1,routeEntry:Lt(r())}),R=(0,E.useMemo)(()=>p.component.read(),[p]),g=(0,E.useCallback)(async c=>{let a={};if(c.preloaded)for(let[h,f]of c.preloaded.entries())f.defer||await f.data.load(),a[h]=f.data;return{component:c.component,location:c.location,props:{params:c.params,preloaded:c.preloaded&&a,search:c.search}}},[]);return(0,E.useEffect)(()=>{let c=i(async(a,h)=>{l({type:"START_ROUTE_TRANSITION"}),e&&await a.component.load();let f=tt(a)?await g(a):{component:a.component,location:a.location,props:{params:a.params,preloaded:a.preloaded,search:a.search}};l({payload:{historyUpdate:h,routeEntry:f},type:"FINISH_ROUTE_TRANSITION"})});return()=>c()},[e,i,g]),(0,E.useEffect)(()=>{s(d)},[d,s]),React.createElement(React.Fragment,null,n&&t?t:null,React.createElement(R,u({},p.props)))};var ot=({children:t,router:e})=>React.createElement(x.Provider,{value:e},t);var st=C(require("react"));var nt=()=>{let t=(0,st.useContext)(x);if(!b(t))throw new Error("`useHistory` can not be used outside of `RouterProvider`.");let{action:e,location:r}=t.history;return{action:e,location:r}};var at=C(require("react"));var it=()=>{let t=(0,at.useContext)(x);if(!b(t))throw new Error("`useNavigation` can not be used outside of `RouterProvider`.");let{back:e,forward:r,go:o,push:s,replace:i}=t.history;return{back:e,forward:r,go:o,push:s,replace:i}};var pt=C(require("react"));var ct=()=>{let t=(0,pt.useContext)(x);if(!b(t))throw new Error("`useRouter` can not be used outside of `RouterProvider`.");let{isActive:e,preloadCode:r,subscribe:o,warmRoute:s}=t;return{isActive:e,preloadCode:r,subscribe:o,warmRoute:s}};var mt=C(require("history"));var ut=C(require("history")),I=t=>u({hash:"",pathname:"",search:""},typeof t=="string"?(0,ut.parsePath)(t):t);var V=(t,e,r="")=>{let o=decodeURIComponent(r),s=t[e];return s?Array.isArray(s)?s.concat(o):[s,o]:o};var W=t=>t?t.slice(1).split("&").reduce((r,o)=>{let[s,i]=o.split("=");if(s){let n=V(r,s,i);return m(u({},r),{[s]:n})}return r},{}):{};var L=(t,e,r=!1)=>{var i,n;let o=I(t),s=I(e);if(o.pathname!==s.pathname)return!1;if(r){let d=O(W((i=o.search)!=null?i:"")),p=O(W((n=s.search)!=null?n:""));return d===p&&o.hash===s.hash}return!0};var j=t=>t.startsWith("/")?t:`/${t}`;var dt=(t,e)=>{let r=j(e),o=[],s=`^(${t.replace(/[$()*+./?[\\\]^{|}-]/g,"\\$&").replace(/\\\*$/,".*").replace(/:(\w+)|(.\*)/g,(p,l="$rest")=>(o.push(l),`([^${l==="$rest"?":(w+)|(.*)":"\\/"}]+)`))})\\/?$`,n=new RegExp(s).exec(r);return n?{params:o.reduce((p,l,R)=>{let g=n[R+2],c=V(p,l,g);return p[l]=c,p},{})}:null};var H=(t,e)=>{var p,l;let r=I(e),{pathname:o}=r,s={},i=u({},W((p=r.search)!=null?p:""));if(!o)throw new Error("Unable to determine pathname from given location");let n=t.has(o)&&t.get(o);if(!n)for(let[R,g]of t.entries()){if(R!=="/*"){let c=dt(R,o);if(!c)continue;s=u({},c.params)}n=g;break}if(!n)throw new Error("No route found for requested path. Ensure you have a wildcard (*) route to catch-all non-matching paths.");let d=(l=n.redirectRules)==null?void 0:l.call(n,s,i);return d?H(t,d):{location:r,params:s,route:n,search:i}};var lt=t=>{let e=new Map,r=(o,s)=>o.forEach(i=>{let f=i,{path:n,children:d}=f,p=S(f,["path","children"]),{path:l="",redirectRules:R}=s!=null?s:{},g=l==="/"?"":l,c=n?j(n):"",a=[g,c].join(""),h=m(u({redirectRules:R},p),{component:new A(p.component)});e.set(a,h),d&&Array.isArray(d)&&r(d,m(u({redirectRules:R},p),{path:a}))});return r(t),process.env.NODE_ENV!=="production"&&!e.has("/*")&&console.warn(`You didn't set a wildcard (*) route to catch any unmatched path. | ||
var Tt=Object.create;var k=Object.defineProperty,At=Object.defineProperties,wt=Object.getOwnPropertyDescriptor,vt=Object.getOwnPropertyDescriptors,bt=Object.getOwnPropertyNames,F=Object.getOwnPropertySymbols,Ot=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable;var J=(t,e,o)=>e in t?k(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,p=(t,e)=>{for(var o in e||(e={}))q.call(e,o)&&J(t,o,e[o]);if(F)for(var o of F(e))G.call(e,o)&&J(t,o,e[o]);return t},m=(t,e)=>At(t,vt(e)),Q=t=>k(t,"__esModule",{value:!0});var S=(t,e)=>{var o={};for(var r in t)q.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&F)for(var r of F(t))e.indexOf(r)<0&&G.call(t,r)&&(o[r]=t[r]);return o};var Ht=(t,e)=>{Q(t);for(var o in e)k(t,o,{get:e[o],enumerable:!0})},Nt=(t,e,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of bt(e))!q.call(t,r)&&r!=="default"&&k(t,r,{get:()=>e[r],enumerable:!(o=wt(e,r))||o.enumerable});return t},x=t=>Nt(Q(k(t!=null?Tt(Ot(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);Ht(exports,{Link:()=>D,RouteRenderer:()=>ot,RouterProvider:()=>st,SuspenseResource:()=>A,createBrowserRouter:()=>ft,createHashRouter:()=>yt,createMemoryRouter:()=>Pt,useHistory:()=>at,useNavigation:()=>pt,useRouter:()=>ut});var M=x(require("react"));var X=x(require("history")),Z=x(require("react")),y=()=>{throw new Error("RouterContext was called outside of RouterProvider.")},b=t=>t.warmRoute!==y,Ut={assistPreload:!1,awaitComponent:!1,get:y,history:{action:X.Action.Push,back:y,block:y,createHref:y,forward:y,go:y,listen:y,location:{hash:"",key:"",pathname:"",search:"",state:null},push:y,replace:y},isActive:y,preloadCode:y,routeTransitionCompleted:y,subscribe:y,warmRoute:y},C=(0,Z.createContext)(Ut);var kt=0,It=t=>Boolean(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey),Wt=t=>!t.defaultPrevented&&t.button===kt&&(!t.currentTarget.target||t.currentTarget.target==="_self")&&!It(t),D=(0,M.forwardRef)((a,g)=>{var n=a,{activeClassName:t="is-active",children:e,className:o,exact:r=!1,to:s,onClick:c,onFocus:i,onKeyDown:d,onMouseDown:u,onMouseEnter:l}=n,f=S(n,["activeClassName","children","className","exact","to","onClick","onFocus","onKeyDown","onMouseDown","onMouseEnter"]);let{history:h,isActive:R,preloadCode:v,warmRoute:_}=(0,M.useContext)(C),T=h.createHref(s),z=R(s,r),xt=(0,M.useCallback)(P=>{try{c==null||c(P)}catch(B){throw P.preventDefault(),B}if(Wt(P)){P.preventDefault();let B=R(s,!0)?"replace":"push";h[B](s)}},[h,R,c,s]),Ct=(0,M.useCallback)(P=>{v(T),i==null||i(P)},[T,i,v]),Et=(0,M.useCallback)(P=>{_(T),d==null||d(P)},[T,d,_]),St=(0,M.useCallback)(P=>{v(T),l==null||l(P)},[T,l,v]),Mt=(0,M.useCallback)(P=>{_(T),u==null||u(P)},[T,u,_]);return React.createElement("a",m(p({ref:g},f),{"aria-current":z?"page":void 0,className:[o,z?t:null].filter(Boolean).join(" "),href:T,onClick:xt,onFocus:Ct,onKeyDown:Et,onMouseDown:Mt,onMouseEnter:St}),e)});var E=x(require("react"));var A=class{constructor(e){this.result=null;this.error=null;this.promise=null;this.loader=e}async load(){if(this.result!==null)return this.result;if(this.promise!==null)return this.promise;this.promise=this.loader();try{let e=await this.promise;return this.result=e,e}catch(e){throw this.error=e,e}}read(){if(this.result!==null)return this.result;throw this.error!==null?this.error:this.promise!==null?this.promise:this.load()}};var O=t=>{let e=[];for(let o in t)!Object.prototype.hasOwnProperty.call(t,o)||e.push(o);return e.sort((o,r)=>o>r?1:-1).reduce((o,r)=>{let s=t[r];if(!s)return o;let c=Array.isArray(s)?s.sort((i,d)=>i>d?1:-1).map(i=>encodeURIComponent(i)).join(`&${r}=`):encodeURIComponent(s);return`${o}${o?"&":"?"}${r}=${c}`},"")};var w={parametersString:"",pathname:"",value:null},tt=t=>typeof t=="function",K=t=>t instanceof Map,et=t=>K(t.preloaded),Lt=({route:t,params:e,search:o},r)=>{var i;let s=new Map,c=(i=t.preload)==null?void 0:i.call(t,e,o);for(let d in c){if(!Object.prototype.hasOwnProperty.call(c,d))continue;let u=c[d];if(u===void 0)continue;let l=tt(u)?u:u.data,f=new A(l);f.load(),s.set(d,{data:f,defer:!tt(u)&&u.defer!==void 0?u.defer:!r})}return s};function $(t,e=!1,o=!1){var g,a;let{route:r,params:s,search:c,location:i}=t,d=i.pathname===w.pathname,u=O(s);if(e&&d&&u===w.parametersString&&w.value!==null)return w.value;r.component.load();let l={component:r.component,location:i,params:s,search:c};if(e){let n=r.preload&&Lt(t,o),h=m(p({},l),{preloaded:n});return n&&(w.pathname=(g=i.pathname)!=null?g:"",w.parametersString=O(s),w.value=h),h}return m(p({},l),{preloaded:(a=r.preload)==null?void 0:a.call(r,s,c)})}var rt=(t,e)=>{switch(e.type){case"START_ROUTE_TRANSITION":return m(p({},t),{isTransitioning:!0});case"FINISH_ROUTE_TRANSITION":return p(m(p({},t),{isTransitioning:!1}),e.payload);default:return t}};var _t=t=>{let e={component:t.component,location:t.location,props:{params:t.params,search:t.search}};if(K(t.preloaded)){let o={};for(let[r,s]of t.preloaded.entries())o[r]=s.data;return m(p({},e),{props:m(p({},e.props),{preloaded:o})})}return m(p({},e),{props:m(p({},e.props),{preloaded:t.preloaded})})},ot=({pendingIndicator:t})=>{let{awaitComponent:e,get:o,history:r,routeTransitionCompleted:s,subscribe:c}=(0,E.useContext)(C),[{isTransitioning:i,historyUpdate:d,routeEntry:u},l]=(0,E.useReducer)(rt,{historyUpdate:{action:r.action,location:r.location},isTransitioning:!1,routeEntry:_t(o())}),f=(0,E.useMemo)(()=>u.component.read(),[u]),g=(0,E.useCallback)(async a=>{let n={};if(a.preloaded)for(let[h,R]of a.preloaded.entries())R.defer||await R.data.load(),n[h]=R.data;return{component:a.component,location:a.location,props:{params:a.params,preloaded:a.preloaded&&n,search:a.search}}},[]);return(0,E.useEffect)(()=>{let a=c(async(n,h)=>{l({type:"START_ROUTE_TRANSITION"}),e&&await n.component.load();let R=et(n)?await g(n):{component:n.component,location:n.location,props:{params:n.params,preloaded:n.preloaded,search:n.search}};l({payload:{historyUpdate:h,routeEntry:R},type:"FINISH_ROUTE_TRANSITION"})});return()=>a()},[e,c,g]),(0,E.useEffect)(()=>{s(d)},[d,s]),React.createElement(React.Fragment,null,i&&t?t:null,React.createElement(f,p({},u.props)))};var st=({children:t,router:e})=>React.createElement(C.Provider,{value:e},t);var nt=x(require("react"));var at=()=>{let t=(0,nt.useContext)(C);if(!b(t))throw new Error("`useHistory` can not be used outside of `RouterProvider`.");let{action:e,location:o}=t.history;return{action:e,location:o}};var it=x(require("react"));var pt=()=>{let t=(0,it.useContext)(C);if(!b(t))throw new Error("`useNavigation` can not be used outside of `RouterProvider`.");let{back:e,forward:o,go:r,push:s,replace:c}=t.history;return{back:e,forward:o,go:r,push:s,replace:c}};var ct=x(require("react"));var ut=()=>{let t=(0,ct.useContext)(C);if(!b(t))throw new Error("`useRouter` can not be used outside of `RouterProvider`.");let{isActive:e,preloadCode:o,subscribe:r,warmRoute:s}=t;return{isActive:e,preloadCode:o,subscribe:r,warmRoute:s}};var ht=x(require("history"));var Y=x(require("history"));var dt=x(require("history")),I=t=>p({hash:"",pathname:"",search:""},typeof t=="string"?(0,dt.parsePath)(t):t);var V=(t,e,o="")=>{let r=decodeURIComponent(o),s=t[e];return s?Array.isArray(s)?s.concat(r):[s,r]:r};var W=t=>t?t.slice(1).split("&").reduce((o,r)=>{let[s,c]=r.split("=");if(s){let i=V(o,s,c);return m(p({},o),{[s]:i})}return o},{}):{};var L=(t,e,o=!1)=>{var c,i;let r=I(t),s=I(e);if(r.pathname!==s.pathname)return!1;if(o){let d=O(W((c=r.search)!=null?c:"")),u=O(W((i=s.search)!=null?i:""));return d===u&&r.hash===s.hash}return!0};var j=t=>t.startsWith("/")?t:`/${t}`;var lt=(t,e)=>{let o=j(e),r=[],s=`^(${t.replace(/[$()*+./?[\\\]^{|}-]/g,"\\$&").replace(/\\\*$/,".*").replace(/:(\w+)|(.\*)/g,(u,l="$rest")=>(r.push(l),`([^${l==="$rest"?":(w+)|(.*)":"\\/"}]+)`))})\\/?$`,i=new RegExp(s).exec(o);return i?{params:r.reduce((u,l,f)=>{let g=i[f+2],a=V(u,l,g);return u[l]=a,u},{})}:null};var H=(t,e)=>{var u,l;let o=I(e),{pathname:r}=o,s={},c=p({},W((u=o.search)!=null?u:""));if(!r)throw new Error("Unable to determine pathname from given location");let i=t.has(r)&&t.get(r);if(!i)for(let[f,g]of t.entries()){if(f!=="/*"){let a=lt(f,r);if(!a)continue;s=p({},a.params)}i=g;break}if(!i)throw new Error("No route found for requested path. Ensure you have a wildcard (*) route to catch-all non-matching paths.");let d=(l=i.redirectRules)==null?void 0:l.call(i,s,c);return d?H(t,d):{location:o,params:s,route:i,search:c}};var mt=t=>{let e=new Map,o=(r,s)=>r.forEach(c=>{let R=c,{path:i,children:d}=R,u=S(R,["path","children"]),{path:l="",redirectRules:f}=s!=null?s:{},g=l==="/"?"":l,a=i?j(i):"",n=[g,a].join(""),h=m(p({redirectRules:f},u),{component:new A(u.component)});e.set(n,h),d&&Array.isArray(d)&&o(d,m(p({redirectRules:f},u),{path:n}))});return o(t),process.env.NODE_ENV!=="production"&&!e.has("/*")&&console.warn(`You didn't set a wildcard (*) route to catch any unmatched path. | ||
This is required to make sure you push users to a Not Found page | ||
when they request a route that doesn't exist; e.g. 404.`),e};var N=({assistPreload:t=!1,awaitComponent:e=!1,awaitPreload:r=!1,history:o,routes:s})=>{let i=lt(s),n=H(i,o.location),d=$(n,t,r);L(n.location,o.location,!0)||o.replace(n.location);let p=0,l=new Map;return o.listen(c=>{let{location:a}=c;if(L(d.location,a,!0))return;let h=H(i,a),f=$(h,t,r);if(!L(h.location,a,!0)){o.replace(h.location);return}d=f,l.forEach(([v])=>v(f,c))}),{assistPreload:t,awaitComponent:e,get:()=>d,history:o,isActive:(c,a)=>L(o.location,c,a),preloadCode:c=>{let a=H(i,c);a&&a.route.component.load()},routeTransitionCompleted:c=>{l.forEach(([,a])=>a==null?void 0:a(c))},subscribe:(c,a)=>{let h=p++,f=()=>{l.delete(h)};return l.set(h,[c,a]),f},warmRoute:c=>{let a=H(i,c);a&&$(a,t,r)}}};var U=t=>{if(Array.isArray(t)){if(t.length===0)throw new Error("At least one route must be provided.")}else throw new TypeError("Must be an array configuration.");return!0};var ht=(o,r)=>{var s=o,{routes:t}=s,e=S(s,["routes"]);return U(t),N(m(u({},e),{history:(0,mt.createBrowserHistory)(r),routes:t}))};var ft=C(require("history"));var Rt=(o,r)=>{var s=o,{routes:t}=s,e=S(s,["routes"]);return U(t),N(m(u({},e),{history:(0,ft.createHashHistory)(r),routes:t}))};var yt=C(require("history"));var gt=(o,r)=>{var s=o,{routes:t}=s,e=S(s,["routes"]);return U(t),N(m(u({},e),{history:(0,yt.createMemoryHistory)(r),routes:t}))};0&&(module.exports={Link,RouteRenderer,RouterProvider,SuspenseResource,createBrowserRouter,createHashRouter,createMemoryRouter,useHistory,useNavigation,useRouter}); | ||
when they request a route that doesn't exist; e.g. 404.`),e};var N=({assistPreload:t=!1,awaitComponent:e=!1,awaitPreload:o=!1,history:r,routes:s})=>{let c=mt(s),i=H(c,r.location),d=$(i,t,o);L(i.location,r.location,!0)||r.replace(i.location);let u=0,l=new Map;r.listen(a=>{let{location:n}=a;if(L(d.location,n,!0))return;let h=H(c,n),R=$(h,t,o);if(!L(h.location,n,!0)){r.replace(h.location);return}d=R,l.forEach(([v])=>v(R,a))});let f=a=>{l.forEach(([,n])=>n==null?void 0:n(a))};return{assistPreload:t,awaitComponent:e,get:()=>d,history:m(p({},r),{push:(a,n)=>r.push(p({hash:"",search:""},typeof a=="string"?(0,Y.parsePath)(a):a),n),replace:(a,n)=>r.replace(p({hash:"",search:""},typeof a=="string"?(0,Y.parsePath)(a):a),n)}),isActive:(a,n)=>L(r.location,a,n),preloadCode:a=>{let n=H(c,a);n&&n.route.component.load()},routeTransitionCompleted:f,subscribe:(a,n)=>{let h=u++,R=()=>{l.delete(h)};return l.set(h,[a,n]),R},warmRoute:a=>{let n=H(c,a);n&&$(n,t,o)}}};var U=t=>{if(Array.isArray(t)){if(t.length===0)throw new Error("At least one route must be provided.")}else throw new TypeError("Must be an array configuration.");return!0};var ft=(r,o)=>{var s=r,{routes:t}=s,e=S(s,["routes"]);return U(t),N(m(p({},e),{history:(0,ht.createBrowserHistory)(o),routes:t}))};var Rt=x(require("history"));var yt=(r,o)=>{var s=r,{routes:t}=s,e=S(s,["routes"]);return U(t),N(m(p({},e),{history:(0,Rt.createHashHistory)(o),routes:t}))};var gt=x(require("history"));var Pt=(r,o)=>{var s=r,{routes:t}=s,e=S(s,["routes"]);return U(t),N(m(p({},e),{history:(0,gt.createMemoryHistory)(o),routes:t}))};0&&(module.exports={Link,RouteRenderer,RouterProvider,SuspenseResource,createBrowserRouter,createHashRouter,createMemoryRouter,useHistory,useNavigation,useRouter}); | ||
//# sourceMappingURL=yarr.cjs.production.min.js.map |
@@ -0,1 +1,2 @@ | ||
import { parsePath } from 'history'; | ||
import { locationsMatch } from './locationsMatch'; | ||
@@ -42,3 +43,19 @@ import { matchRoutes } from './matchRoutes'; | ||
get: () => currentEntry, | ||
history, | ||
history: { | ||
...history, | ||
// This functions are overwritten because of bug in History v5 where | ||
// if a string `to` argument is passed in, location search and location hash | ||
// are not cleared but will use the existing locations search and hash. | ||
// See: https://github.com/erictaylor/yarr/issues/4 | ||
push: (to, state) => history.push({ | ||
hash: '', | ||
search: '', | ||
...(typeof to === 'string' ? parsePath(to) : to), | ||
}, state), | ||
replace: (to, state) => history.replace({ | ||
hash: '', | ||
search: '', | ||
...(typeof to === 'string' ? parsePath(to) : to), | ||
}, state), | ||
}, | ||
isActive: (path, exact) => locationsMatch(history.location, path, exact), | ||
@@ -45,0 +62,0 @@ preloadCode: (pathname) => { |
{ | ||
"name": "yarr", | ||
"version": "2.0.0-alpha.3", | ||
"version": "2.0.0-alpha.4", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "author": "Eric Taylor <eric@daxos.com>", |
@@ -132,3 +132,9 @@ import { Action, createMemoryHistory } from 'history'; | ||
get: expect.any(Function), | ||
history: defaultRouterOptions.history, | ||
history: { | ||
...defaultRouterOptions.history, | ||
// These functions explicitly expect any function because of issue: | ||
// https://github.com/erictaylor/yarr/issues/4 | ||
push: expect.any(Function), | ||
replace: expect.any(Function), | ||
}, | ||
isActive: expect.any(Function), | ||
@@ -135,0 +141,0 @@ preloadCode: expect.any(Function), |
import type { Update } from 'history'; | ||
import { parsePath } from 'history'; | ||
import type { | ||
@@ -78,3 +79,27 @@ RouterContextProps, | ||
get: () => currentEntry, | ||
history, | ||
history: { | ||
...history, | ||
// This functions are overwritten because of bug in History v5 where | ||
// if a string `to` argument is passed in, location search and location hash | ||
// are not cleared but will use the existing locations search and hash. | ||
// See: https://github.com/erictaylor/yarr/issues/4 | ||
push: (to, state) => | ||
history.push( | ||
{ | ||
hash: '', | ||
search: '', | ||
...(typeof to === 'string' ? parsePath(to) : to), | ||
}, | ||
state | ||
), | ||
replace: (to, state) => | ||
history.replace( | ||
{ | ||
hash: '', | ||
search: '', | ||
...(typeof to === 'string' ? parsePath(to) : to), | ||
}, | ||
state | ||
), | ||
}, | ||
isActive: (path, exact) => locationsMatch(history.location, path, exact), | ||
@@ -81,0 +106,0 @@ preloadCode: (pathname) => { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
361862
6058