react-router-guid
Advanced tools
Comparing version
@@ -8,19 +8,20 @@ /** | ||
*/ | ||
import React ,{ReactNode} from 'react' | ||
import { RouteObject } from 'react-router-dom' | ||
interface MetaType { | ||
[propName: string]: any; | ||
[propName: string]: any | ||
} | ||
interface FunctionalImportType { | ||
(): any; | ||
(): any | ||
} | ||
type ReactCompType = JSX.Element | ||
type ReactCompType = ReactNode | ||
interface RoutesItemType extends RouteObject { | ||
redirect?: string; | ||
component?: FunctionalImportType; | ||
meta?: MetaType; | ||
children?: RoutesItemType[]; | ||
redirect?: string | ||
component?: FunctionalImportType | ||
meta?: MetaType | ||
children?: RoutesItemType[] | ||
} | ||
@@ -33,28 +34,25 @@ | ||
interface OnRouteBeforeType { | ||
(payload: { | ||
pathname: string; | ||
meta: MetaType; | ||
}): OnRouteBeforeResType | Promise<OnRouteBeforeResType>; | ||
(payload: { pathname: string; meta: MetaType }): OnRouteBeforeResType | Promise<OnRouteBeforeResType> | ||
} | ||
interface RouterWaiterPropsType { | ||
routes: RoutesType; | ||
onRouteBefore?: OnRouteBeforeType; | ||
loading?: ReactCompType; | ||
routes: RoutesType | ||
onRouteBefore?: OnRouteBeforeType | ||
loading?: ReactCompType | ||
} | ||
interface RouterWaiterType { | ||
(payload: RouterWaiterPropsType): JSX.Element; | ||
(payload: RouterWaiterPropsType): ReactNode | ||
} | ||
export type { | ||
MetaType, // 路由meta字段类型 | ||
FunctionalImportType, // 懒加载函数式导入组件的类型 | ||
ReactCompType, // react组件类型 | ||
RoutesItemType, // 路由配属数组项类型 | ||
RoutesType, // 路由配置数组类型 | ||
OnRouteBeforeResType, // 路由拦截函数(实际有效使用的)返回值类型 | ||
OnRouteBeforeType, // 路由拦截函数类型 | ||
RouterWaiterPropsType, // RouterWaiter主组件props类型 | ||
RouterWaiterType, // RouterWaiter主组件类型 | ||
MetaType, // 路由meta字段类型 | ||
FunctionalImportType, // 懒加载函数式导入组件的类型 | ||
ReactCompType, // react组件类型 | ||
RoutesItemType, // 路由配属数组项类型 | ||
RoutesType, // 路由配置数组类型 | ||
OnRouteBeforeResType, // 路由拦截函数(实际有效使用的)返回值类型 | ||
OnRouteBeforeType, // 路由拦截函数类型 | ||
RouterWaiterPropsType, // RouterWaiter主组件props类型 | ||
RouterWaiterType, // RouterWaiter主组件类型 | ||
} | ||
@@ -61,0 +59,0 @@ |
@@ -1,1 +0,1 @@ | ||
!function(){"use strict";var e={n:function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{default:function(){return d}});var r=require("react-router-dom"),n=require("react"),o=e.n(n);var a={getDataType:function(e){return Object.prototype.toString.call(e).match(/\s(\w+)\]/)[1]}},i=null;var u=function(e){var t=e.element,n=e.meta,u=e.onRouteBefore;n=n||{};var c=(0,r.useLocation)().pathname;if((0,r.useNavigate)(),u){if(i===t)return t;var l=u({pathname:c,meta:n});"Promise"===a.getDataType(l)?l.then((function(e){if(e&&e!==c){var t=window.location.hash;t&&"#"==t[0]?window.location.replace("/#".concat(e)):window.location.replace("/".concat(e))}})):l&&l!==c&&(t=o().createElement(r.Navigate,{to:l,replace:!0}))}return i=t,t};function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function f(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var p=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.routes=t.routes||[],this.onRouteBefore=t.onRouteBefore,this.loading=t.loading||o().createElement("div",null)}var t,n,a;return t=e,n=[{key:"transformRoutes",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.routes,n=[];return t.forEach((function(t){var a=l({},t);void 0!==a.path&&(a.redirect&&(a.element=o().createElement(r.Navigate,{to:a.redirect,replace:!0})),a.component&&(a.element=e.lazyLoad(a.component,a.meta||{})),delete a.redirect,delete a.component,delete a.meta,a.children&&(a.children=e.transformRoutes(a.children)),n.push(a))})),n}},{key:"lazyLoad",value:function(e,t){var r=o().lazy(e),n=o().createElement(o().Suspense,{fallback:this.loading},o().createElement(r,{_meta:t}));return o().createElement(u,{element:n,meta:t,onRouteBefore:this.onRouteBefore})}}],n&&s(t.prototype,n),a&&s(t,a),Object.defineProperty(t,"prototype",{writable:!1}),e}();var d=function(e){var t=e.routes,n=e.onRouteBefore,o=e.loading,a=new p({routes:t,onRouteBefore:n,loading:o}).transformRoutes();return(0,r.useRoutes)(a)};exports.default=t.default,Object.defineProperty(exports,"__esModule",{value:!0})}(); | ||
!function(){"use strict";var e={n:function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{default:function(){return d}});var r=require("react-router-dom"),n=require("react"),o=e.n(n);var a={getDataType:function(e){return Object.prototype.toString.call(e).match(/\s(\w+)\]/)[1]}},u=null;var i=function(e){var t=e.element,n=e.meta,i=e.onRouteBefore;n=n||{};var c=(0,r.useLocation)().pathname;if((0,r.useNavigate)(),i){if(u===t)return t;var l=i({pathname:c,meta:n});"Promise"===a.getDataType(l)?l.then((function(e){if(e&&e!==c){var t=window.location.hash;t&&"#"==t[0]?window.location.replace("/#".concat(e)):window.location.replace("/".concat(e))}})):l&&l!==c&&(t=o().createElement(r.Navigate,{to:l,replace:!0}))}return u=t,t};function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function f(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var p=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.routes=t.routes||[],this.onRouteBefore=t.onRouteBefore,this.loading=t.loading||o().createElement("div",null)}var t,n,a;return t=e,n=[{key:"transformRoutes",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.routes,n=[];return t.forEach((function(t){var a=l({},t);void 0!==a.path&&(a.redirect&&(a.element=o().createElement(r.Navigate,{to:a.redirect,replace:!0})),a.component&&(a.element=e.lazyLoad(a.component,a.meta||{})),a.element&&(a.element=i({element:a.element,meta:a.meta||{},onRouteBefore:e.onRouteBefore})),delete a.redirect,delete a.component,delete a.meta,a.children&&(a.children=e.transformRoutes(a.children)),n.push(a))})),n}},{key:"lazyLoad",value:function(e,t){var r=o().lazy(e),n=o().createElement(o().Suspense,{fallback:this.loading},o().createElement(r,{_meta:t}));return i({element:n,meta:t||{},onRouteBefore:this.onRouteBefore})}}],n&&s(t.prototype,n),a&&s(t,a),Object.defineProperty(t,"prototype",{writable:!1}),e}();var d=function(e){var t=e.routes,n=e.onRouteBefore,o=e.loading,a=new p({routes:t,onRouteBefore:n,loading:o}).transformRoutes();return(0,r.useRoutes)(a)};exports.default=t.default,Object.defineProperty(exports,"__esModule",{value:!0})}(); |
{ | ||
"name": "react-router-guid", | ||
"version": "1.1.6", | ||
"version": "1.1.7", | ||
"description": "react-router v6 路由统一管理及路由拦截方案", | ||
@@ -5,0 +5,0 @@ "author": "neohan", |
@@ -8,19 +8,20 @@ /** | ||
*/ | ||
import React ,{ReactNode} from 'react' | ||
import { RouteObject } from 'react-router-dom' | ||
interface MetaType { | ||
[propName: string]: any; | ||
[propName: string]: any | ||
} | ||
interface FunctionalImportType { | ||
(): any; | ||
(): any | ||
} | ||
type ReactCompType = JSX.Element | ||
type ReactCompType = ReactNode | ||
interface RoutesItemType extends RouteObject { | ||
redirect?: string; | ||
component?: FunctionalImportType; | ||
meta?: MetaType; | ||
children?: RoutesItemType[]; | ||
redirect?: string | ||
component?: FunctionalImportType | ||
meta?: MetaType | ||
children?: RoutesItemType[] | ||
} | ||
@@ -33,28 +34,25 @@ | ||
interface OnRouteBeforeType { | ||
(payload: { | ||
pathname: string; | ||
meta: MetaType; | ||
}): OnRouteBeforeResType | Promise<OnRouteBeforeResType>; | ||
(payload: { pathname: string; meta: MetaType }): OnRouteBeforeResType | Promise<OnRouteBeforeResType> | ||
} | ||
interface RouterWaiterPropsType { | ||
routes: RoutesType; | ||
onRouteBefore?: OnRouteBeforeType; | ||
loading?: ReactCompType; | ||
routes: RoutesType | ||
onRouteBefore?: OnRouteBeforeType | ||
loading?: ReactCompType | ||
} | ||
interface RouterWaiterType { | ||
(payload: RouterWaiterPropsType): JSX.Element; | ||
(payload: RouterWaiterPropsType): ReactNode | ||
} | ||
export type { | ||
MetaType, // 路由meta字段类型 | ||
FunctionalImportType, // 懒加载函数式导入组件的类型 | ||
ReactCompType, // react组件类型 | ||
RoutesItemType, // 路由配属数组项类型 | ||
RoutesType, // 路由配置数组类型 | ||
OnRouteBeforeResType, // 路由拦截函数(实际有效使用的)返回值类型 | ||
OnRouteBeforeType, // 路由拦截函数类型 | ||
RouterWaiterPropsType, // RouterWaiter主组件props类型 | ||
RouterWaiterType, // RouterWaiter主组件类型 | ||
MetaType, // 路由meta字段类型 | ||
FunctionalImportType, // 懒加载函数式导入组件的类型 | ||
ReactCompType, // react组件类型 | ||
RoutesItemType, // 路由配属数组项类型 | ||
RoutesType, // 路由配置数组类型 | ||
OnRouteBeforeResType, // 路由拦截函数(实际有效使用的)返回值类型 | ||
OnRouteBeforeType, // 路由拦截函数类型 | ||
RouterWaiterPropsType, // RouterWaiter主组件props类型 | ||
RouterWaiterType, // RouterWaiter主组件类型 | ||
} | ||
@@ -61,0 +59,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
21617
0.23%451
-3.22%