@moneko/core 2.0.0-beta.4 → 2.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,2 @@
1
1
  export declare let HASANTD: boolean;
2
- export declare let AntdDayjsWebpackPlugin: any;
3
2
  export declare const antdThemeVariables: {};
package/build/has-antd.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{HASANTD:function(){return HASANTD},AntdDayjsWebpackPlugin:function(){return AntdDayjsWebpackPlugin},antdThemeVariables:function(){return antdThemeVariables}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _common=require("./common");var _processEnv=require("./process-env");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HASANTD=false;var AntdDayjsWebpackPlugin=null;var antdThemeVariables={};try{var antdPath=_path.default.join(_processEnv.PROGRAMPATH,"./node_modules/antd/package.json");_fs.default.accessSync(antdPath,_fs.default.constants.R_OK);HASANTD=true;Object.assign(antdThemeVariables,require("antd/dist/theme").getThemeVariables(_common.CONFIG.antdThemeVariables||{}));AntdDayjsWebpackPlugin=require("antd-dayjs-webpack-plugin")}catch(error){HASANTD=false}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{HASANTD:function(){return HASANTD},antdThemeVariables:function(){return antdThemeVariables}});var _fs=_interopRequireDefault(require("fs"));var _path=_interopRequireDefault(require("path"));var _processEnv=require("./process-env");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HASANTD=false;var antdThemeVariables={};try{var antdPath=_path.default.join(_processEnv.PROGRAMPATH,"./node_modules/antd/package.json");_fs.default.accessSync(antdPath,_fs.default.constants.R_OK);HASANTD=true}catch(error){HASANTD=false}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _path=_interopRequireDefault(require("path"));var _fs=_interopRequireDefault(require("fs"));var _htmlWebpackPlugin=_interopRequireDefault(require("html-webpack-plugin"));var _webpack=require("webpack");var _webpackbar=_interopRequireDefault(require("webpackbar"));var _common=require("./common");var _moduleConfig=_interopRequireDefault(require("./module.config"));var _envFlags=_interopRequireDefault(require("./envFlags"));var _addAssetHtmlWebpackPlugin=_interopRequireDefault(require("add-asset-html-webpack-plugin"));var _htmlAddEntryAttr=_interopRequireDefault(require("./html-add-entry-attr"));var _moduleFederation=require("./module-federation");var _hasAntd=require("./has-antd");var _processEnv=require("./process-env");var _htmlPluginOption=_interopRequireDefault(require("./html-plugin-option"));function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){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 _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}var eslintrc=[".eslintrc.js",".eslintrc.json",".eslintrc.yaml",".eslintrc.json"];var stylelintrc=[".stylelintrc",".stylelintrc.json",".stylelintrc.yaml",".stylelintrc.yml",".stylelintrc.js","stylelint.config.js","stylelint.config.cjs"];var rootFiles=_fs.default.readdirSync(_processEnv.PROGRAMPATH);var hasEslint=false,hasStylelint=false;for(var i=0,len=rootFiles.length;i<len;i++){if(stylelintrc.includes(rootFiles[i])){hasStylelint=true}if(eslintrc.includes(rootFiles[i])){hasEslint=true}}if(!hasEslint){hasEslint=_processEnv.hasEslintConfig}if(!hasStylelint){hasStylelint=_processEnv.hasStylelintConfig}var StylelintPlugin=hasStylelint?require("stylelint-webpack-plugin"):null;var ESLintPlugin=hasEslint?require("eslint-webpack-plugin"):null;var alias={"@":_path.default.resolve(_processEnv.PROGRAMPATH,"./src")};Object.assign(alias,_common.CONFIG.alias);if(_processEnv.APPTYPE==="library"){Object.assign(alias,_defineProperty({"@":_path.default.resolve(_processEnv.PROGRAMPATH,"./site"),"@pkg":_path.default.resolve(_processEnv.PROGRAMPATH,"./components")},_processEnv.PACKAGENAME,_path.default.resolve(_processEnv.PROGRAMPATH,"./components")))}var assetHtmlOption=_common.CONFIG.assetHtml.map(function(item){return _objectSpread({publicPath:""},item)});var entryMap={main:[_path.default.join(__dirname,"../lib/packages/".concat(_common.ENTRYPATH[_processEnv.APPTYPE],"/index.js"))]};if(_common.CONFIG.entry&&Object.keys(_common.CONFIG.entry)){Object.assign(_common.CONFIG.entry,entryMap)}var config={entry:entryMap,stats:"errors-only",infrastructureLogging:{level:"none"},target:"web",plugins:[new _webpack.AutomaticPrefetchPlugin,_hasAntd.AntdDayjsWebpackPlugin&&new _hasAntd.AntdDayjsWebpackPlugin].concat(_toConsumableArray(_moduleFederation.moduleFederation),[ESLintPlugin&&new ESLintPlugin({threads:true,extensions:["js","md","mdx","cjs","ejs","mjs","jsx","ts","tsx","json","html","coffee","vue"]}),StylelintPlugin&&new StylelintPlugin({fix:true,threads:true,extensions:["css","less"]}),new _htmlWebpackPlugin.default(_htmlPluginOption.default),new _addAssetHtmlWebpackPlugin.default(assetHtmlOption),_processEnv.APPTYPE==="single-spa"&&new _htmlAddEntryAttr.default(function(src){return!!(src.match(/main\.(.*)\.bundle.js$/)||src.match("main.bundle.js"))}),new _webpack.DefinePlugin(_envFlags.default),new _webpack.WatchIgnorePlugin({paths:[/\.d\.ts$/]}),_common.CONFIG.sourceMap&&new _webpack.SourceMapDevToolPlugin(_common.CONFIG.sourceMap),new _webpackbar.default({name:"编译中",color:"#6f42c1"})],_toConsumableArray(_common.CONFIG.plugins)).filter(Boolean),experiments:{topLevelAwait:true},resolve:{extensions:[".tsx",".ts",".js",".jsx"],alias:alias,fallback:{path:false,fs:false,crypto:false}},module:_moduleConfig.default,externals:_common.CONFIG.externals,output:{path:_common.CONFIG.output,filename:"js/[name].bundle.js",chunkFilename:"js/[name].chunk.js",assetModuleFilename:"assets/[name].[hash][ext]",library:_processEnv.PACKAGENAME,libraryTarget:"window",globalObject:"window",chunkLoadingGlobal:"webpackJsonp_".concat(_processEnv.PACKAGENAME),publicPath:_common.PUBLICPATH,pathinfo:false,clean:_common.CONFIG.clean}};var _default=config;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _path=_interopRequireDefault(require("path"));var _fs=_interopRequireDefault(require("fs"));var _htmlWebpackPlugin=_interopRequireDefault(require("html-webpack-plugin"));var _webpack=require("webpack");var _webpackbar=_interopRequireDefault(require("webpackbar"));var _common=require("./common");var _moduleConfig=_interopRequireDefault(require("./module.config"));var _envFlags=_interopRequireDefault(require("./envFlags"));var _addAssetHtmlWebpackPlugin=_interopRequireDefault(require("add-asset-html-webpack-plugin"));var _htmlAddEntryAttr=_interopRequireDefault(require("./html-add-entry-attr"));var _moduleFederation=require("./module-federation");var _processEnv=require("./process-env");var _htmlPluginOption=_interopRequireDefault(require("./html-plugin-option"));function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){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 _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}var eslintrc=[".eslintrc.js",".eslintrc.json",".eslintrc.yaml",".eslintrc.json"];var stylelintrc=[".stylelintrc",".stylelintrc.json",".stylelintrc.yaml",".stylelintrc.yml",".stylelintrc.js","stylelint.config.js","stylelint.config.cjs"];var rootFiles=_fs.default.readdirSync(_processEnv.PROGRAMPATH);var hasEslint=false,hasStylelint=false;for(var i=0,len=rootFiles.length;i<len;i++){if(stylelintrc.includes(rootFiles[i])){hasStylelint=true}if(eslintrc.includes(rootFiles[i])){hasEslint=true}}if(!hasEslint){hasEslint=_processEnv.hasEslintConfig}if(!hasStylelint){hasStylelint=_processEnv.hasStylelintConfig}var StylelintPlugin=hasStylelint?require("stylelint-webpack-plugin"):null;var ESLintPlugin=hasEslint?require("eslint-webpack-plugin"):null;var alias={"@":_path.default.resolve(_processEnv.PROGRAMPATH,"./src")};Object.assign(alias,_common.CONFIG.alias);if(_processEnv.APPTYPE==="library"){Object.assign(alias,_defineProperty({"@":_path.default.resolve(_processEnv.PROGRAMPATH,"./site"),"@pkg":_path.default.resolve(_processEnv.PROGRAMPATH,"./components")},_processEnv.PACKAGENAME,_path.default.resolve(_processEnv.PROGRAMPATH,"./components")))}var assetHtmlOption=_common.CONFIG.assetHtml.map(function(item){return _objectSpread({publicPath:""},item)});var entryMap={main:[_path.default.join(__dirname,"../lib/packages/".concat(_common.ENTRYPATH[_processEnv.APPTYPE],"/index.js"))]};if(_common.CONFIG.entry&&Object.keys(_common.CONFIG.entry)){Object.assign(_common.CONFIG.entry,entryMap)}var config={entry:entryMap,stats:"errors-only",infrastructureLogging:{level:"none"},target:"web",plugins:[new _webpack.AutomaticPrefetchPlugin].concat(_toConsumableArray(_moduleFederation.moduleFederation),[ESLintPlugin&&new ESLintPlugin({threads:true,extensions:["js","md","mdx","cjs","ejs","mjs","jsx","ts","tsx","json","html","coffee","vue"]}),StylelintPlugin&&new StylelintPlugin({fix:true,threads:true,extensions:["css","less"]}),new _htmlWebpackPlugin.default(_htmlPluginOption.default),new _addAssetHtmlWebpackPlugin.default(assetHtmlOption),_processEnv.APPTYPE==="single-spa"&&new _htmlAddEntryAttr.default(function(src){return!!(src.match(/main\.(.*)\.bundle.js$/)||src.match("main.bundle.js"))}),new _webpack.DefinePlugin(_envFlags.default),new _webpack.WatchIgnorePlugin({paths:[/\.d\.ts$/]}),_common.CONFIG.sourceMap&&new _webpack.SourceMapDevToolPlugin(_common.CONFIG.sourceMap),new _webpackbar.default({name:"编译中",color:"#6f42c1"})],_toConsumableArray(_common.CONFIG.plugins)).filter(Boolean),experiments:{topLevelAwait:true},resolve:{extensions:[".tsx",".ts",".js",".jsx"],alias:alias,fallback:{path:false,fs:false,crypto:false}},module:_moduleConfig.default,externals:_common.CONFIG.externals,output:{path:_common.CONFIG.output,filename:"js/[name].bundle.js",chunkFilename:"js/[name].chunk.js",assetModuleFilename:"assets/[name].[hash][ext]",library:_processEnv.PACKAGENAME,libraryTarget:"window",globalObject:"window",chunkLoadingGlobal:"webpackJsonp_".concat(_processEnv.PACKAGENAME),publicPath:_common.PUBLICPATH,pathinfo:false,clean:_common.CONFIG.clean}};var _default=config;
@@ -1,9 +1,8 @@
1
- import React from 'react';
2
- import type { ReactNode } from 'react';
3
- import type { RouterProps } from '../../router';
1
+ import { type ReactElement } from 'react';
2
+ import { type RouterProps } from '../../router';
4
3
  interface AppRouterProps {
5
4
  router: RouterProps[];
6
- fallback?: ReactNode;
5
+ fallback?: ReactElement;
7
6
  }
8
- declare const AppRouter: React.NamedExoticComponent<AppRouterProps>;
9
- export default AppRouter;
7
+ declare const _default: import("react").NamedExoticComponent<AppRouterProps>;
8
+ export default _default;
@@ -1,2 +1,2 @@
1
- function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{Suspense,useCallback,useEffect}from"react";import{useRoutes}from"react-router-dom";import{AliveScope,KeepAlive,useAliveController}from"react-activation";import Fallback from"../fallback";import{isEqual}from"@moneko/common";var PrefixKeepAlive=function(_param){var children=_param.children,name=_param.name,args=_objectWithoutProperties(_param,["children","name"]);var _useAliveController=useAliveController(),drop=_useAliveController.drop,dropScope=_useAliveController.dropScope,clear=_useAliveController.clear,getCachingNodes=_useAliveController.getCachingNodes;var id=window.location.pathname+window.location.hash;useEffect(function(){if(window.__POWERED_BY_QIANKUN__&&window.primaryApp){if(!window.primaryApp.currentTarget){window.primaryApp.currentTarget={}}Object.assign(window.primaryApp.currentTarget,{aliveController:{drop:drop,dropScope:dropScope,clear:clear,getCachingNodes:getCachingNodes}})}},[clear,drop,dropScope,getCachingNodes]);var _children=children;return React.createElement(KeepAlive,_extends({id:id,name:id},args),React.cloneElement(_children,{path:name,selfUrl:id}))};var existKeepAlive=false,Fragment=React.Fragment;var AppRoute=function(param){var router=param.router,_param_fallback=param.fallback,fallback=_param_fallback===void 0?React.createElement(Fallback,null):_param_fallback;var prefixRouter=useCallback(function(list){return list.map(function(r){var _=_objectSpread({},r);if(!!_.alive&&!existKeepAlive){existKeepAlive=true;Fragment=AliveScope}if(_.element&&!!_.alive){var aliveProps={name:_.key};if(Object.prototype.toString.call(_.alive)==="[object Object]"){Object.assign(aliveProps,_.alive)}_.element=React.createElement(PrefixKeepAlive,aliveProps,_.element)}_.element=_.element&&React.createElement(Suspense,{fallback:fallback},React.cloneElement(_.element,{path:_.key}));if(Array.isArray(_.children)){_.children=prefixRouter(_.children)}return _})},[fallback]);var routers=useRoutes(prefixRouter(router));return React.createElement(Fragment,null,routers)};var AppRouter=React.memo(AppRoute,isEqual);export default AppRouter;
1
+ import{Suspense,useCallback,memo,createElement,cloneElement}from"react";import{useRoutes}from"react-router-dom";import{isEqual}from"@moneko/common";import Fallback from"../fallback";var AppRoute=function(param){var router=param.router,_param_fallback=param.fallback,fallback=_param_fallback===void 0?React.createElement(Fallback,null):_param_fallback;var prefixRouter=useCallback(function(list){return list.map(function(r){if(r.element){Object.assign(r,{element:createElement(Suspense,{fallback:r.fallback||fallback},cloneElement(r.element,{path:r.key}))})}if(Array.isArray(r.children)){Object.assign(r,{children:prefixRouter(r.children)})}return r})},[fallback]);var routers=useRoutes(prefixRouter(router));return React.createElement(React.Fragment,null,routers)};export default memo(AppRoute,function(pre,next){return isEqual({router:pre.router,fallback:pre.fallback},{router:next.router,fallback:next.fallback})});
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/app-router/index.tsx"],"sourcesContent":["import React, { Suspense, useCallback, useEffect } from 'react';\nimport { useRoutes } from 'react-router-dom';\nimport { AliveScope, KeepAlive, useAliveController } from 'react-activation';\nimport Fallback from '../fallback';\nimport type { ReactNode, ReactElement } from 'react';\nimport type { KeepAliveProps } from 'react-activation';\nimport type { RouterProps } from '../../router';\nimport { isEqual } from '@moneko/common';\n\nconst PrefixKeepAlive: React.FC<Partial<KeepAliveProps>> = ({ children, name, ...args }) => {\n const { drop, dropScope, clear, getCachingNodes } = useAliveController();\n const id = window.location.pathname + window.location.hash;\n\n useEffect(() => {\n if (window.__POWERED_BY_QIANKUN__ && window.primaryApp) {\n if (!window.primaryApp.currentTarget) {\n window.primaryApp.currentTarget = {};\n }\n Object.assign(window.primaryApp.currentTarget, {\n aliveController: { drop, dropScope, clear, getCachingNodes },\n });\n }\n }, [clear, drop, dropScope, getCachingNodes]);\n\n const _children = children as ReactElement;\n\n return (\n <KeepAlive id={id} name={id} {...args}>\n {React.cloneElement(_children, {\n path: name,\n selfUrl: id,\n })}\n </KeepAlive>\n );\n};\n\ninterface AppRouterProps {\n router: RouterProps[];\n fallback?: ReactNode;\n}\n\nlet existKeepAlive = false,\n Fragment: typeof React.Fragment | typeof AliveScope = React.Fragment;\nconst AppRoute: React.FC<AppRouterProps> = ({ router, fallback = <Fallback /> }) => {\n const prefixRouter = useCallback(\n (list: RouterProps[]) => {\n return list.map((r) => {\n const _ = { ...r };\n\n if (!!_.alive && !existKeepAlive) {\n existKeepAlive = true;\n Fragment = AliveScope;\n }\n if (_.element && !!_.alive) {\n const aliveProps: Partial<KeepAliveProps> = {\n name: _.key,\n };\n\n if (Object.prototype.toString.call(_.alive) === '[object Object]') {\n Object.assign(aliveProps, _.alive);\n }\n _.element = React.createElement(PrefixKeepAlive, aliveProps, _.element);\n }\n _.element =\n _.element &&\n React.createElement(\n Suspense,\n {\n fallback: fallback,\n },\n React.cloneElement(_.element as ReactElement, {\n path: _.key,\n })\n );\n\n if (Array.isArray(_.children)) {\n _.children = prefixRouter(_.children);\n }\n\n return _;\n });\n },\n [fallback]\n );\n const routers = useRoutes(prefixRouter(router));\n\n return <Fragment>{routers}</Fragment>;\n};\n\nconst AppRouter = React.memo(AppRoute, isEqual);\n\nexport default AppRouter;\n"],"names":["React","Suspense","useCallback","useEffect","useRoutes","AliveScope","KeepAlive","useAliveController","Fallback","isEqual","PrefixKeepAlive","children","name","args","drop","dropScope","clear","getCachingNodes","id","window","location","pathname","hash","__POWERED_BY_QIANKUN__","primaryApp","currentTarget","Object","assign","aliveController","_children","cloneElement","path","selfUrl","existKeepAlive","Fragment","AppRoute","router","fallback","prefixRouter","list","map","r","_","alive","element","aliveProps","key","prototype","toString","call","createElement","Array","isArray","routers","AppRouter","memo"],"mappings":"AAAA,yjDAAA,OAAOA,OAASC,QAAQ,CAAEC,WAAW,CAAEC,SAAS,KAAQ,OAAQ,AAChE,QAASC,SAAS,KAAQ,kBAAmB,AAC7C,QAASC,UAAU,CAAEC,SAAS,CAAEC,kBAAkB,KAAQ,kBAAmB,AAC7E,QAAOC,aAAc,aAAc,AAInC,QAASC,OAAO,KAAQ,gBAAiB,CAEzC,IAAMC,gBAAqD,gBAAiC,KAA9BC,gBAAAA,SAAUC,YAAAA,KAASC,sCAAnBF,WAAUC,SACtE,IAAoDL,oBAAAA,qBAA5CO,KAA4CP,oBAA5CO,KAAMC,UAAsCR,oBAAtCQ,UAAWC,MAA2BT,oBAA3BS,MAAOC,gBAAoBV,oBAApBU,gBAChC,IAAMC,GAAKC,OAAOC,QAAQ,CAACC,QAAQ,CAAGF,OAAOC,QAAQ,CAACE,IAAI,CAE1DnB,UAAU,UAAM,CACd,GAAIgB,OAAOI,sBAAsB,EAAIJ,OAAOK,UAAU,CAAE,CACtD,GAAI,CAACL,OAAOK,UAAU,CAACC,aAAa,CAAE,CACpCN,OAAOK,UAAU,CAACC,aAAa,CAAG,CAAC,CACrC,CAAC,AACDC,OAAOC,MAAM,CAACR,OAAOK,UAAU,CAACC,aAAa,CAAE,CAC7CG,gBAAiB,CAAEd,KAAAA,KAAMC,UAAAA,UAAWC,MAAAA,MAAOC,gBAAAA,eAAgB,CAC7D,EACF,CAAC,AACH,EAAG,CAACD,MAAOF,KAAMC,UAAWE,gBAAgB,EAE5C,IAAMY,UAAYlB,SAElB,OACE,oBAACL,oBAAUY,GAAIA,GAAIN,KAAMM,IAAQL,MAC9Bb,MAAM8B,YAAY,CAACD,UAAW,CAC7BE,KAAMnB,KACNoB,QAASd,EACX,GAGN,EAOA,IAAIe,eAAiB,KAAK,CACxBC,SAAsDlC,MAAMkC,QAAQ,CACtE,IAAMC,SAAqC,eAAyC,KAAtCC,aAAAA,6BAAQC,SAAAA,kCAAW,oBAAC7B,+BAChE,IAAM8B,aAAepC,YACnB,SAACqC,KAAwB,CACvB,OAAOA,KAAKC,GAAG,CAAC,SAACC,EAAM,CACrB,IAAMC,EAAI,iBAAKD,GAEf,GAAI,CAAC,CAACC,EAAEC,KAAK,EAAI,CAACV,eAAgB,CAChCA,eAAiB,IAAI,CACrBC,SAAW7B,UACb,CAAC,AACD,GAAIqC,EAAEE,OAAO,EAAI,CAAC,CAACF,EAAEC,KAAK,CAAE,CAC1B,IAAME,WAAsC,CAC1CjC,KAAM8B,EAAEI,GAAG,AACb,EAEA,GAAIpB,OAAOqB,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACP,EAAEC,KAAK,IAAM,kBAAmB,CACjEjB,OAAOC,MAAM,CAACkB,WAAYH,EAAEC,KAAK,CACnC,CAAC,AACDD,EAAEE,OAAO,CAAG5C,MAAMkD,aAAa,CAACxC,gBAAiBmC,WAAYH,EAAEE,OAAO,CACxE,CAAC,AACDF,EAAEE,OAAO,CACPF,EAAEE,OAAO,EACT5C,MAAMkD,aAAa,CACjBjD,SACA,CACEoC,SAAUA,QACZ,EACArC,MAAM8B,YAAY,CAACY,EAAEE,OAAO,CAAkB,CAC5Cb,KAAMW,EAAEI,GAAG,AACb,IAGJ,GAAIK,MAAMC,OAAO,CAACV,EAAE/B,QAAQ,EAAG,CAC7B+B,EAAE/B,QAAQ,CAAG2B,aAAaI,EAAE/B,QAAQ,CACtC,CAAC,AAED,OAAO+B,CACT,EACF,EACA,CAACL,SAAS,EAEZ,IAAMgB,QAAUjD,UAAUkC,aAAaF,SAEvC,OAAO,oBAACF,cAAUmB,QACpB,EAEA,IAAMC,UAAYtD,MAAMuD,IAAI,CAACpB,SAAU1B,QAEvC,gBAAe6C,SAAU"}
1
+ {"version":3,"sources":["../../../src/components/app-router/index.tsx"],"sourcesContent":["import {\n type FC,\n type ReactElement,\n Suspense,\n useCallback,\n memo,\n createElement,\n cloneElement,\n} from 'react';\nimport { useRoutes } from 'react-router-dom';\nimport { type RouterProps } from '../../router';\nimport { isEqual } from '@moneko/common';\nimport Fallback from '../fallback';\n\ninterface AppRouterProps {\n router: RouterProps[];\n fallback?: ReactElement;\n}\n\nconst AppRoute: FC<AppRouterProps> = ({ router, fallback = <Fallback /> }) => {\n const prefixRouter = useCallback(\n (list: RouterProps[]) => {\n return list.map((r) => {\n if (r.element) {\n Object.assign(r, {\n element: createElement(\n Suspense,\n {\n fallback: r.fallback || fallback,\n },\n cloneElement(r.element, {\n path: r.key,\n })\n ),\n });\n }\n\n if (Array.isArray(r.children)) {\n Object.assign(r, {\n children: prefixRouter(r.children),\n });\n }\n\n return r;\n });\n },\n [fallback]\n );\n\n const routers = useRoutes(prefixRouter(router));\n\n return <>{routers}</>;\n};\n\nexport default memo(AppRoute, (pre, next) =>\n isEqual(\n { router: pre.router, fallback: pre.fallback },\n { router: next.router, fallback: next.fallback }\n )\n);\n"],"names":["Suspense","useCallback","memo","createElement","cloneElement","useRoutes","isEqual","Fallback","AppRoute","router","fallback","prefixRouter","list","map","r","element","Object","assign","path","key","Array","isArray","children","routers","pre","next"],"mappings":"AAAA,OAGEA,QAAQ,CACRC,WAAW,CACXC,IAAI,CACJC,aAAa,CACbC,YAAY,KACP,OAAQ,AACf,QAASC,SAAS,KAAQ,kBAAmB,AAE7C,QAASC,OAAO,KAAQ,gBAAiB,AACzC,QAAOC,aAAc,aAAc,CAOnC,IAAMC,SAA+B,eAAyC,KAAtCC,aAAAA,6BAAQC,SAAAA,kCAAW,oBAACH,+BAC1D,IAAMI,aAAeV,YACnB,SAACW,KAAwB,CACvB,OAAOA,KAAKC,GAAG,CAAC,SAACC,EAAM,CACrB,GAAIA,EAAEC,OAAO,CAAE,CACbC,OAAOC,MAAM,CAACH,EAAG,CACfC,QAASZ,cACPH,SACA,CACEU,SAAUI,EAAEJ,QAAQ,EAAIA,QAC1B,EACAN,aAAaU,EAAEC,OAAO,CAAE,CACtBG,KAAMJ,EAAEK,GAAG,AACb,GAEJ,EACF,CAAC,AAED,GAAIC,MAAMC,OAAO,CAACP,EAAEQ,QAAQ,EAAG,CAC7BN,OAAOC,MAAM,CAACH,EAAG,CACfQ,SAAUX,aAAaG,EAAEQ,QAAQ,CACnC,EACF,CAAC,AAED,OAAOR,CACT,EACF,EACA,CAACJ,SAAS,EAGZ,IAAMa,QAAUlB,UAAUM,aAAaF,SAEvC,OAAO,wCAAGc,QACZ,CAEA,gBAAerB,KAAKM,SAAU,SAACgB,IAAKC,aAClCnB,QACE,CAAEG,OAAQe,IAAIf,MAAM,CAAEC,SAAUc,IAAId,QAAQ,AAAC,EAC7C,CAAED,OAAQgB,KAAKhB,MAAM,CAAEC,SAAUe,KAAKf,QAAQ,AAAC,IAEjD"}
@@ -1,3 +1,3 @@
1
- import React from 'react';
2
- declare const _default: React.NamedExoticComponent<{}>;
1
+ /// <reference types="react" />
2
+ declare const _default: import("react").NamedExoticComponent<{}>;
3
3
  export default _default;
@@ -1,2 +1,2 @@
1
- function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){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 _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _toArray(arr){return _arrayWithHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useMemo,useState}from"react";import{useOutlet}from"react-router-dom";import FallbackComp from"../fallback-comp";var Fallback=function(){var _useOutlet;var outlet=(_useOutlet=useOutlet())===null||_useOutlet===void 0?void 0:_useOutlet.props.children;var _useState=_slicedToArray(useState(React.createElement(React.Fragment,null,"Loading...")),2),el=_useState[0],setEl=_useState[1];useMemo(function(){if(typeof fallbackCompPath==="string"){var pat=fallbackCompPath.replace(/@\//,"").split("/");var _pat=_toArray(pat),directory=_pat[0],path=_pat.slice(1);setEl(React.createElement(FallbackComp,{directory:directory,compName:path.join("/")}))}},[]);return outlet?outlet:el};export default React.memo(Fallback);
1
+ function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){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 _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _toArray(arr){return _arrayWithHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import{useMemo,useState,memo}from"react";import{useOutlet}from"react-router-dom";import FallbackComp from"../fallback-comp";var Fallback=function(){var _useOutlet;var outlet=(_useOutlet=useOutlet())===null||_useOutlet===void 0?void 0:_useOutlet.props.children;var _useState=_slicedToArray(useState(React.createElement(React.Fragment,null,"Loading...")),2),el=_useState[0],setEl=_useState[1];useMemo(function(){if(typeof fallbackCompPath==="string"){var pat=fallbackCompPath.replace(/@\//,"").split("/");var _pat=_toArray(pat),directory=_pat[0],path=_pat.slice(1);setEl(React.createElement(FallbackComp,{directory:directory,compName:path.join("/")}))}},[]);return outlet?outlet:el};export default memo(Fallback,function(){return true});
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/fallback/index.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { useOutlet } from 'react-router-dom';\nimport FallbackComp from '../fallback-comp';\n\ndeclare const fallbackCompPath: string;\n\nconst Fallback: React.FC = () => {\n const outlet = useOutlet()?.props.children;\n const [el, setEl] = useState(<React.Fragment>Loading...</React.Fragment>);\n\n useMemo(() => {\n if (typeof fallbackCompPath === 'string') {\n const pat = fallbackCompPath.replace(/@\\//, '').split('/');\n const [directory, ...path] = pat;\n\n setEl(<FallbackComp directory={directory} compName={path.join('/')} />);\n }\n }, []);\n\n return outlet ? outlet : el;\n};\n\nexport default React.memo(Fallback);\n"],"names":["React","useMemo","useState","useOutlet","FallbackComp","Fallback","outlet","props","children","Fragment","el","setEl","fallbackCompPath","pat","replace","split","directory","path","compName","join","memo"],"mappings":"AAAA,ykDAAA,OAAOA,OAASC,OAAO,CAAEC,QAAQ,KAAQ,OAAQ,AACjD,QAASC,SAAS,KAAQ,kBAAmB,AAC7C,QAAOC,iBAAkB,kBAAmB,CAI5C,IAAMC,SAAqB,UAAM,KAChBF,WAAf,IAAMG,OAASH,CAAAA,WAAAA,qBAAAA,oBAAAA,KAAAA,EAAAA,WAAaI,MAAMC,QAAQ,CAC1C,IAAoBN,yBAAAA,SAAS,oBAACF,MAAMS,QAAQ,MAAC,kBAAtCC,GAAaR,aAATS,MAAST,aAEpBD,QAAQ,UAAM,CACZ,GAAI,OAAOW,mBAAqB,SAAU,CACxC,IAAMC,IAAMD,iBAAiBE,OAAO,CAAC,MAAO,IAAIC,KAAK,CAAC,KACtD,IAA6BF,cAAAA,KAAtBG,UAAsBH,QAAX,AAAGI,KAAQJ,WAAX,GAElBF,MAAM,oBAACP,cAAaY,UAAWA,UAAWE,SAAUD,KAAKE,IAAI,CAAC,OAChE,CAAC,AACH,EAAG,EAAE,EAEL,OAAOb,OAASA,OAASI,EAAE,AAC7B,CAEA,gBAAeV,MAAMoB,IAAI,CAACf,SAAU"}
1
+ {"version":3,"sources":["../../../src/components/fallback/index.tsx"],"sourcesContent":["import { type FC, useMemo, useState, memo } from 'react';\nimport { useOutlet } from 'react-router-dom';\nimport FallbackComp from '../fallback-comp';\n\ndeclare const fallbackCompPath: string;\n\nconst Fallback: FC = () => {\n const outlet = useOutlet()?.props.children;\n const [el, setEl] = useState(<>Loading...</>);\n\n useMemo(() => {\n if (typeof fallbackCompPath === 'string') {\n const pat = fallbackCompPath.replace(/@\\//, '').split('/');\n const [directory, ...path] = pat;\n\n setEl(<FallbackComp directory={directory} compName={path.join('/')} />);\n }\n }, []);\n\n return outlet ? outlet : el;\n};\n\nexport default memo(Fallback, () => true);\n"],"names":["useMemo","useState","memo","useOutlet","FallbackComp","Fallback","outlet","props","children","el","setEl","fallbackCompPath","pat","replace","split","directory","path","compName","join"],"mappings":"AAAA,ykDAAA,OAAkBA,OAAO,CAAEC,QAAQ,CAAEC,IAAI,KAAQ,OAAQ,AACzD,QAASC,SAAS,KAAQ,kBAAmB,AAC7C,QAAOC,iBAAkB,kBAAmB,CAI5C,IAAMC,SAAe,UAAM,KACVF,WAAf,IAAMG,OAASH,CAAAA,WAAAA,qBAAAA,oBAAAA,KAAAA,EAAAA,WAAaI,MAAMC,QAAQ,CAC1C,IAAoBP,yBAAAA,SAAS,wCAAE,kBAAxBQ,GAAaR,aAATS,MAAST,aAEpBD,QAAQ,UAAM,CACZ,GAAI,OAAOW,mBAAqB,SAAU,CACxC,IAAMC,IAAMD,iBAAiBE,OAAO,CAAC,MAAO,IAAIC,KAAK,CAAC,KACtD,IAA6BF,cAAAA,KAAtBG,UAAsBH,QAAX,AAAGI,KAAQJ,WAAX,GAElBF,MAAM,oBAACN,cAAaW,UAAWA,UAAWE,SAAUD,KAAKE,IAAI,CAAC,OAChE,CAAC,AACH,EAAG,EAAE,EAEL,OAAOZ,OAASA,OAASG,EAAE,AAC7B,CAEA,gBAAeP,KAAKG,SAAU,kBAAM,IAAI,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/navgate.ts"],"sourcesContent":["import { useNavigate as useNavigateReactRouter, useSearchParams } from 'react-router-dom';\nimport type { NavigateOptions, To } from 'react-router-dom';\n\nconst useNavigate = (\n /** search保留字 */\n reserved?: string | string[]\n) => {\n const reservedWord = Array.from(\n new Set(['menuId', 'dynamicTitle'].concat(reserved || ''))\n ).filter(Boolean);\n const navigates = useNavigateReactRouter();\n const [search] = useSearchParams();\n\n const navigate = (to: To | -1, options?: NavigateOptions) => {\n if (to === -1) {\n navigates(-1);\n return;\n }\n /** 提取保留字属性 */\n const nextSerach: Record<string, string> = {};\n\n search.forEach((val, key) => {\n if (reservedWord.includes(key)) {\n Object.assign(nextSerach, {\n [key]: val,\n });\n }\n });\n\n let entryUrl = to as string;\n const entrySearchIdx = (entryUrl as string).indexOf('?');\n\n if (entrySearchIdx !== -1) {\n const searchByToUrl = new URLSearchParams(entryUrl.slice(entrySearchIdx));\n\n searchByToUrl.forEach((val, key) => {\n Object.assign(nextSerach, {\n [key]: val,\n });\n });\n entryUrl = entryUrl.substring(0, entrySearchIdx);\n }\n\n const searchObj = new URLSearchParams(nextSerach);\n const searchString = searchObj.toString();\n const toUrl = searchString?.trim().length ? [entryUrl, searchString].join('?') : entryUrl;\n\n navigates(toUrl, options);\n };\n\n return navigate;\n};\n\nexport default useNavigate;\n"],"names":["useNavigate","useNavigateReactRouter","useSearchParams","reserved","reservedWord","Array","from","Set","concat","filter","Boolean","navigates","search","navigate","to","options","nextSerach","forEach","val","key","includes","Object","assign","entryUrl","entrySearchIdx","indexOf","searchByToUrl","URLSearchParams","slice","substring","searchObj","searchString","toString","toUrl","trim","length","join"],"mappings":"AAAA,8+CAAA,OAASA,eAAeC,sBAAsB,CAAEC,eAAe,KAAQ,kBAAmB,CAG1F,IAAMF,YAAc,SAElBG,SACG,CACH,IAAMC,aAAeC,MAAMC,IAAI,CAC7B,IAAIC,IAAI,CAAC,SAAU,eAAe,CAACC,MAAM,CAACL,UAAY,MACtDM,MAAM,CAACC,SACT,IAAMC,UAAYV,yBAClB,IAAiBC,gCAAAA,qBAAVU,OAAUV,oBAEjB,IAAMW,SAAW,SAACC,GAAaC,QAA8B,CAC3D,GAAID,KAAO,CAAC,EAAG,CACbH,UAAU,CAAC,GACX,MACF,CAAC,AAED,IAAMK,WAAqC,CAAC,EAE5CJ,OAAOK,OAAO,CAAC,SAACC,IAAKC,IAAQ,CAC3B,GAAIf,aAAagB,QAAQ,CAACD,KAAM,CAC9BE,OAAOC,MAAM,CAACN,WACZ,mBAACG,IAAMD,KAEX,CAAC,AACH,GAEA,IAAIK,SAAWT,GACf,IAAMU,eAAiB,AAACD,SAAoBE,OAAO,CAAC,KAEpD,GAAID,iBAAmB,CAAC,EAAG,CACzB,IAAME,cAAgB,IAAIC,gBAAgBJ,SAASK,KAAK,CAACJ,iBAEzDE,cAAcT,OAAO,CAAC,SAACC,IAAKC,IAAQ,CAClCE,OAAOC,MAAM,CAACN,WACZ,mBAACG,IAAMD,KAEX,GACAK,SAAWA,SAASM,SAAS,CAAC,EAAGL,eACnC,CAAC,AAED,IAAMM,UAAY,IAAIH,gBAAgBX,YACtC,IAAMe,aAAeD,UAAUE,QAAQ,GACvC,IAAMC,MAAQF,CAAAA,qBAAAA,sBAAAA,KAAAA,EAAAA,aAAcG,IAAI,GAAq7////HC,MAAN,EAAH,CAADZ,SAAp5////HQ,aAAa,CAACK,IAAI,CAAC,KAAOb,QAAQ,CAEzFZ,UAAUsB,MAAOlB,QACnB,EAEA,OAAOF,QACT,CAEA,gBAAeb,WAAY"}
1
+ {"version":3,"sources":["../../src/hooks/navgate.ts"],"sourcesContent":["import { useNavigate as useNavigateReactRouter, useSearchParams } from 'react-router-dom';\nimport type { NavigateOptions, To } from 'react-router-dom';\n\nconst useNavigate = (\n /** search保留字 */\n reserved?: string | string[]\n) => {\n const reservedWord = Array.from(\n new Set(['menuId', 'dynamicTitle'].concat(reserved || ''))\n ).filter(Boolean);\n const navigates = useNavigateReactRouter();\n const [search] = useSearchParams();\n\n const navigate = (to: To | -1, options?: NavigateOptions) => {\n if (to === -1) {\n navigates(-1);\n return;\n }\n /** 提取保留字属性 */\n const nextSerach: Record<string, string> = {};\n\n search.forEach((val, key) => {\n if (reservedWord.includes(key)) {\n Object.assign(nextSerach, {\n [key]: val,\n });\n }\n });\n\n let entryUrl = to as string;\n const entrySearchIdx = (entryUrl as string).indexOf('?');\n\n if (entrySearchIdx !== -1) {\n const searchByToUrl = new URLSearchParams(entryUrl.slice(entrySearchIdx));\n\n searchByToUrl.forEach((val, key) => {\n Object.assign(nextSerach, {\n [key]: val,\n });\n });\n entryUrl = entryUrl.substring(0, entrySearchIdx);\n }\n\n const searchObj = new URLSearchParams(nextSerach);\n const searchString = searchObj.toString();\n const toUrl = searchString?.trim().length ? [entryUrl, searchString].join('?') : entryUrl;\n\n navigates(toUrl, options);\n };\n\n return navigate;\n};\n\nexport default useNavigate;\n"],"names":["useNavigate","useNavigateReactRouter","useSearchParams","reserved","reservedWord","Array","from","Set","concat","filter","Boolean","navigates","search","navigate","to","options","nextSerach","forEach","val","key","includes","Object","assign","entryUrl","entrySearchIdx","indexOf","searchByToUrl","URLSearchParams","slice","substring","searchObj","searchString","toString","toUrl","trim","length","join"],"mappings":"AAAA,8+CAAA,OAASA,eAAeC,sBAAsB,CAAEC,eAAe,KAAQ,kBAAmB,CAG1F,IAAMF,YAAc,SAElBG,SACG,CACH,IAAMC,aAAeC,MAAMC,IAAI,CAC7B,IAAIC,IAAI,CAAC,SAAU,eAAe,CAACC,MAAM,CAACL,UAAY,MACtDM,MAAM,CAACC,SACT,IAAMC,UAAYV,yBAClB,IAAiBC,gCAAAA,qBAAVU,OAAUV,oBAEjB,IAAMW,SAAW,SAACC,GAAaC,QAA8B,CAC3D,GAAID,KAAO,CAAC,EAAG,CACbH,UAAU,CAAC,GACX,MACF,CAAC,AAED,IAAMK,WAAqC,CAAC,EAE5CJ,OAAOK,OAAO,CAAC,SAACC,IAAKC,IAAQ,CAC3B,GAAIf,aAAagB,QAAQ,CAACD,KAAM,CAC9BE,OAAOC,MAAM,CAACN,WACZ,mBAACG,IAAMD,KAEX,CAAC,AACH,GAEA,IAAIK,SAAWT,GACf,IAAMU,eAAiB,AAACD,SAAoBE,OAAO,CAAC,KAEpD,GAAID,iBAAmB,CAAC,EAAG,CACzB,IAAME,cAAgB,IAAIC,gBAAgBJ,SAASK,KAAK,CAACJ,iBAEzDE,cAAcT,OAAO,CAAC,SAACC,IAAKC,IAAQ,CAClCE,OAAOC,MAAM,CAACN,WACZ,mBAACG,IAAMD,KAEX,GACAK,SAAWA,SAASM,SAAS,CAAC,EAAGL,eACnC,CAAC,AAED,IAAMM,UAAY,IAAIH,gBAAgBX,YACtC,IAAMe,aAAeD,UAAUE,QAAQ,GACvC,IAAMC,MAAQF,CAAAA,qBAAAA,sBAAAA,KAAAA,EAAAA,aAAcG,IAAI,GAAGC,MAAM,EAAG,CAACZ,SAAUQ,aAAa,CAACK,IAAI,CAAC,KAAOb,QAAQ,CAEzFZ,UAAUsB,MAAOlB,QACnB,EAEA,OAAOF,QACT,CAEA,gBAAeb,WAAY"}
@@ -1,4 +1,4 @@
1
- import type { ReactNode } from 'react';
1
+ import { type ReactElement, type ReactNode } from 'react';
2
2
  import type { RouteObject } from 'react-router-dom';
3
3
  import type { KeepAliveProps } from 'react-activation';
4
4
  export interface RouterProps extends Omit<RouteObject, 'index' | 'children'> {
@@ -12,7 +12,8 @@ export interface RouterProps extends Omit<RouteObject, 'index' | 'children'> {
12
12
  onlyLogin?: boolean;
13
13
  root?: boolean;
14
14
  path?: string;
15
- element?: ReactNode;
15
+ element?: ReactElement;
16
+ fallback?: ReactElement;
16
17
  /** 可否关闭标签 */
17
18
  closable?: boolean;
18
19
  children?: RouterProps[];
@@ -1,2 +1,2 @@
1
- function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){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 _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import*as React from"react";import{lazyImport}from"../utils/lazy-import";import{pathToRegexp}from"path-to-regexp";export var myPkgs=[];if(APPTYPE==="library"){var Readme=require("../components/readme").default;var models=require.context("@pkg/",true,/README\.mdx?$/);models.keys().map(function(item){var key=item.substring(2).split("/").slice(0,-1).join("/");myPkgs.push({key:key,path:key,element:React.createElement(Readme)})})}var list=[];try{list=require("@/router").default}catch(error){console.info("自定义路由请在 router 目录下新建 index.ts, 类型: RouterProps[]")}var predixKey=function(path,prev){return[prev==="*"&&path!=="*"?undefined:prev,path].filter(Boolean).join("/")};var models1=require.context("@/pages/",true,/\.(t|j)sx$/,"lazy");var pathToTree=function(input){var root=[];for(var i=0;i<input.length;i++){var chain=input[i].split("/").slice(0,-1);var curr=root;for(var j=0;j<chain.length;j++){var pathRule=chain[j];if(pathRule==="")continue;if(pathRule===".")pathRule="*";var lastHierarchy=curr;if(Array.isArray(curr)){for(var k=0;k<curr.length;k++){if(curr[k].path===pathRule){curr=curr[k].children;break}}}if(lastHierarchy===curr){var key=j===chain.length-1?input[i]:chain.slice(0,j+1).join("/")+"/";key=key.substring(2,key.lastIndexOf("/"));var node={key:key,path:pathRule,i18n:"route-"+key,children:[],alive:false,element:React.createElement(lazyImport(key.replace(/:/g,"$"))),hideMenu:key.includes(":")};if(Array.isArray(curr))curr.push(node);curr=node.children}}}return root};var routers=pathToTree(models1.keys().map(function(item){return item.replace(/\$/g,":")}));function merge(source,child,prev){var _=source.find(function(item){return item.path===child.path});if(!_){source.push(child)}else{_.key=predixKey(_.path,prev);if(typeof _.i18n==="undefined"){_.i18n="route-"+_.key}if(typeof _.alive==="undefined"){_.alive=false}if(typeof _.element==="undefined"&&child.element){_.element=child.element}if(typeof _.hideMenu==="undefined"){_.hideMenu=_.path==="*"?true:_.key.includes(":")}Object.assign(_,_objectSpread({},child,_));if(child.children){var _child_children;if(!_.children&&Array.isArray(child.children)){_.children=child.children}(_child_children=child.children)===null||_child_children===void 0?void 0:_child_children.forEach(function(childData){merge(_===null||_===void 0?void 0:_.children,childData,_===null||_===void 0?void 0:_.key)})}}}var findLogin=function(){var rs=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],onlyLogin=arguments.length>1?arguments[1]:void 0,prevKey=arguments.length>2?arguments[2]:void 0;return rs.map(function(e){var _=_objectSpread({},e);if(typeof _.key==="undefined"){_.key=predixKey(e.path,prevKey)}if(typeof _.i18n==="undefined"){_.i18n="route-"+_.key}if(typeof _.alive==="undefined"){_.alive=false}if(_.path==="*"&&typeof _.hideMenu==="undefined"){_.hideMenu=true}if(Array.isArray(_.children)){_.children=_.children.length?findLogin(_.children,onlyLogin,_.key):undefined}if(!_.element){_.element=React.createElement(lazyImport(_.key.replace(/:/g,"$")))}return!!_.onlyLogin===onlyLogin&&!_.root?null:_}).filter(Boolean)};var _router=_toConsumableArray(list);routers.forEach(function(item){return merge(_router,item)});export var onlyLoginRouter=findLogin(_router,false);export var router=findLogin(_router,true);export var matchUtil=function(pathname){var p={key:""};var findPath=function(rs){rs.forEach(function(item){if(item.path&&item.path!=="*"&&item.key){try{if(pathToRegexp(item.key).exec(pathname.substring(1))){p=item;return}}catch(error){}}if(Array.isArray(item.children))findPath(item.children)})};findPath(router);return p};
1
+ function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){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 _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import{lazyImport}from"../utils/lazy-import";import{pathToRegexp}from"path-to-regexp";import{createElement,lazy}from"react";export var myPkgs=[];if(APPTYPE==="library"){var models=require.context("@pkg/",true,/README\.mdx?$/,"lazy");models.keys().map(function(item){var key=item.substring(2).split("/").slice(0,-1).join("/");myPkgs.push({key:key,path:key,element:createElement(lazy(function(){return import("@pkg/"+key+"/"+"README.mdx")}))})})}var list=[];try{list=require("@/router").default}catch(error){console.info("自定义路由请在 router 目录下新建 index.ts, 类型: RouterProps[]")}var predixKey=function(path,prev){return[prev==="*"&&path!=="*"?undefined:prev,path].filter(Boolean).join("/")};var models1=require.context("@/pages/",true,/\.(t|j)sx$/,"lazy");var pathToTree=function(input){var root=[];for(var i=0;i<input.length;i++){var chain=input[i].split("/").slice(0,-1);var curr=root;for(var j=0;j<chain.length;j++){var pathRule=chain[j];if(pathRule==="")continue;if(pathRule===".")pathRule="*";var lastHierarchy=curr;if(Array.isArray(curr)){for(var k=0;k<curr.length;k++){if(curr[k].path===pathRule){curr=curr[k].children;break}}}if(lastHierarchy===curr){var key=j===chain.length-1?input[i]:chain.slice(0,j+1).join("/")+"/";key=key.substring(2,key.lastIndexOf("/"));var node={key:key,path:pathRule,i18n:"route-"+key,children:[],alive:false,element:createElement(lazyImport(key.replace(/:/g,"$"))),hideMenu:key.includes(":")};if(Array.isArray(curr))curr.push(node);curr=node.children}}}return root};var routers=pathToTree(models1.keys().map(function(item){return item.replace(/\$/g,":")}));function merge(source,child,prev){var _=source.find(function(item){return item.path===child.path});if(!_){source.push(child)}else{_.key=predixKey(_.path,prev);if(typeof _.i18n==="undefined"){_.i18n="route-"+_.key}if(typeof _.alive==="undefined"){_.alive=false}if(typeof _.element==="undefined"&&child.element){_.element=child.element}if(typeof _.hideMenu==="undefined"){_.hideMenu=_.path==="*"?true:_.key.includes(":")}Object.assign(_,_objectSpread({},child,_));if(child.children){var _child_children;if(!_.children&&Array.isArray(child.children)){_.children=child.children}(_child_children=child.children)===null||_child_children===void 0?void 0:_child_children.forEach(function(childData){merge(_===null||_===void 0?void 0:_.children,childData,_===null||_===void 0?void 0:_.key)})}}}var findLogin=function(){var rs=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],onlyLogin=arguments.length>1?arguments[1]:void 0,prevKey=arguments.length>2?arguments[2]:void 0;return rs.map(function(e){var _=_objectSpread({},e);if(typeof _.key==="undefined"){_.key=predixKey(e.path,prevKey)}if(typeof _.i18n==="undefined"){_.i18n="route-"+_.key}if(typeof _.alive==="undefined"){_.alive=false}if(_.path==="*"&&typeof _.hideMenu==="undefined"){_.hideMenu=true}if(Array.isArray(_.children)){_.children=_.children.length?findLogin(_.children,onlyLogin,_.key):undefined}if(!_.element){_.element=createElement(lazyImport(_.key.replace(/:/g,"$")))}return!!_.onlyLogin===onlyLogin&&!_.root?null:_}).filter(Boolean)};var _router=_toConsumableArray(list);routers.forEach(function(item){return merge(_router,item)});export var onlyLoginRouter=findLogin(_router,false);export var router=findLogin(_router,true);export var matchUtil=function(pathname){var p={key:""};var findPath=function(rs){rs.forEach(function(item){if(item.path&&item.path!=="*"&&item.key){try{if(pathToRegexp(item.key).exec(pathname.substring(1))){p=item;return}}catch(error){}}if(Array.isArray(item.children))findPath(item.children)})};findPath(router);return p};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/router/index.ts"],"sourcesContent":["import * as React from 'react';\nimport { lazyImport } from '../utils/lazy-import';\nimport { pathToRegexp } from 'path-to-regexp';\nimport type { ReactNode } from 'react';\nimport type { RouteObject } from 'react-router-dom';\nimport type { KeepAliveProps } from 'react-activation';\n\nexport interface RouterProps extends Omit<RouteObject, 'index' | 'children'> {\n key: string;\n alive?: KeepAliveProps | boolean;\n icon?: ReactNode;\n dynamicTitle?: string;\n i18n?: string | null;\n hideMenu?: boolean;\n hideTabs?: boolean;\n onlyLogin?: boolean;\n root?: boolean;\n path?: string;\n element?: ReactNode;\n /** 可否关闭标签 */\n closable?: boolean;\n children?: RouterProps[];\n}\n\nexport const myPkgs: RouterProps[] = [];\nif (APPTYPE === 'library') {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const Readme = require('../components/readme').default;\n const models = require.context('@pkg/', true, /README\\.mdx?$/);\n\n models.keys().map((item: string) => {\n const key = item.substring(2).split('/').slice(0, -1).join('/');\n\n myPkgs.push({\n key: key,\n path: key,\n element: React.createElement(Readme),\n });\n });\n}\n\nlet list: RouterProps[] = [];\n\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n list = require('@/router').default;\n} catch (error) {\n // eslint-disable-next-line no-console\n console.info('自定义路由请在 router 目录下新建 index.ts, 类型: RouterProps[]');\n}\n\nconst predixKey = (path?: string, prev?: string) =>\n // eslint-disable-next-line no-undefined\n [prev === '*' && path !== '*' ? undefined : prev, path].filter(Boolean).join('/');\n\nconst models = require.context('@/pages/', true, /\\.(t|j)sx$/, 'lazy');\n\nconst pathToTree = (input: string[]) => {\n const root: RouterProps[] = [];\n\n for (let i = 0; i < input.length; i++) {\n const chain = input[i].split('/').slice(0, -1);\n let curr = root;\n\n for (let j = 0; j < chain.length; j++) {\n let pathRule = chain[j];\n\n if (pathRule === '') continue;\n if (pathRule === '.') pathRule = '*';\n const lastHierarchy = curr;\n\n // 遍历root是否已有该层级\n if (Array.isArray(curr)) {\n for (let k = 0; k < curr.length; k++) {\n if (curr[k].path === pathRule) {\n curr = curr[k].children as RouterProps[];\n break;\n }\n }\n }\n\n if (lastHierarchy === curr) {\n let key: string = j === chain.length - 1 ? input[i] : chain.slice(0, j + 1).join('/') + '/';\n\n // 截取最后一个 / 前面的数据\n key = key.substring(2, key.lastIndexOf('/'));\n\n const node: RouterProps = {\n key: key,\n path: pathRule,\n i18n: 'route-' + key,\n children: [],\n alive: false,\n element: React.createElement(lazyImport(key.replace(/:/g, '$'))),\n hideMenu: key.includes(':'),\n };\n\n // 文件,最后一个字符不是\"/“符号\n // if (j === chain.length - 1) delete node.children;\n if (Array.isArray(curr)) curr.push(node);\n curr = node.children as RouterProps[];\n }\n }\n }\n\n return root;\n};\nconst routers: RouterProps[] = pathToTree(\n models.keys().map((item: string) => item.replace(/\\$/g, ':'))\n);\n\nfunction merge(source: RouterProps[], child: RouterProps, prev?: string) {\n const _ = source.find((item) => item.path === child.path);\n\n if (!_) {\n source.push(child);\n } else {\n // 处理key\n _.key = predixKey(_.path, prev);\n if (typeof _.i18n === 'undefined') {\n _.i18n = 'route-' + _.key;\n }\n if (typeof _.alive === 'undefined') {\n _.alive = false;\n }\n if (typeof _.element === 'undefined' && child.element) {\n _.element = child.element;\n }\n if (typeof _.hideMenu === 'undefined') {\n _.hideMenu = _.path === '*' ? true : _.key.includes(':');\n }\n\n Object.assign(_, {\n ...child,\n ..._,\n });\n if (child.children) {\n if (!_.children && Array.isArray(child.children)) {\n _.children = child.children;\n }\n child.children?.forEach((childData) => {\n merge(_?.children as RouterProps[], childData, _?.key);\n });\n }\n }\n}\nconst findLogin = (rs: RouterProps[] = [], onlyLogin: boolean, prevKey?: string): RouterProps[] => {\n return rs\n .map((e) => {\n const _ = { ...e };\n\n if (typeof _.key === 'undefined') {\n _.key = predixKey(e.path, prevKey);\n }\n if (typeof _.i18n === 'undefined') {\n _.i18n = 'route-' + _.key;\n }\n if (typeof _.alive === 'undefined') {\n _.alive = false;\n }\n if (_.path === '*' && typeof _.hideMenu === 'undefined') {\n _.hideMenu = true;\n }\n if (Array.isArray(_.children)) {\n // eslint-disable-next-line no-undefined\n _.children = _.children.length ? findLogin(_.children, onlyLogin, _.key) : undefined;\n }\n if (!_.element) {\n _.element = React.createElement(lazyImport(_.key.replace(/:/g, '$')));\n }\n return !!_.onlyLogin === onlyLogin && !_.root ? null : _;\n })\n .filter(Boolean) as RouterProps[];\n};\nconst _router: RouterProps[] = [...list];\n\nrouters.forEach((item: RouterProps) => merge(_router, item));\n\n/* 登录前注册的路由 */\nexport const onlyLoginRouter = findLogin(_router, false);\n/* 登录后注册的路由 */\nexport const router = findLogin(_router, true);\n\nexport const matchUtil = (pathname: string) => {\n let p: RouterProps = { key: '' };\n const findPath = (rs: RouterProps[]): void => {\n rs.forEach((item) => {\n if (item.path && item.path !== '*' && item.key) {\n try {\n if (pathToRegexp(item.key).exec(pathname.substring(1) as string)) {\n p = item;\n return;\n }\n // eslint-disable-next-line no-empty\n } catch (error) {}\n }\n if (Array.isArray(item.children)) findPath(item.children);\n });\n };\n\n findPath(router);\n return p;\n};\n"],"names":["React","lazyImport","pathToRegexp","myPkgs","APPTYPE","Readme","require","default","models","context","keys","map","item","key","substring","split","slice","join","push","path","element","createElement","list","error","console","info","predixKey","prev","undefined","filter","Boolean","pathToTree","input","root","i","length","chain","curr","j","pathRule","lastHierarchy","Array","isArray","k","children","lastIndexOf","node","i18n","alive","replace","hideMenu","includes","routers","merge","source","child","_","find","Object","assign","forEach","childData","findLogin","rs","onlyLogin","prevKey","e","_router","onlyLoginRouter","router","matchUtil","pathname","p","findPath","exec"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/router/index.ts"],"sourcesContent":["import { lazyImport } from '../utils/lazy-import';\nimport { pathToRegexp } from 'path-to-regexp';\nimport { createElement, lazy, type ReactElement, type ReactNode } from 'react';\nimport type { RouteObject } from 'react-router-dom';\nimport type { KeepAliveProps } from 'react-activation';\n\nexport interface RouterProps extends Omit<RouteObject, 'index' | 'children'> {\n key: string;\n alive?: KeepAliveProps | boolean;\n icon?: ReactNode;\n dynamicTitle?: string;\n i18n?: string | null;\n hideMenu?: boolean;\n hideTabs?: boolean;\n onlyLogin?: boolean;\n root?: boolean;\n path?: string;\n element?: ReactElement;\n fallback?: ReactElement;\n /** 可否关闭标签 */\n closable?: boolean;\n children?: RouterProps[];\n}\n\nexport const myPkgs: RouterProps[] = [];\nif (APPTYPE === 'library') {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n // const Readme = require('@moneko/core/lib/components/readme').default;\n const models = require.context('@pkg/', true, /README\\.mdx?$/, 'lazy');\n\n models.keys().map((item: string) => {\n const key = item.substring(2).split('/').slice(0, -1).join('/');\n\n myPkgs.push({\n key: key,\n path: key,\n element: createElement(\n lazy(\n () =>\n import(\n /* webpackChunkName: \"[request]\" */\n '@pkg/' + key + '/' + 'README.mdx'\n )\n )\n ),\n });\n });\n}\n\nlet list: RouterProps[] = [];\n\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n list = require('@/router').default;\n} catch (error) {\n // eslint-disable-next-line no-console\n console.info('自定义路由请在 router 目录下新建 index.ts, 类型: RouterProps[]');\n}\n\nconst predixKey = (path?: string, prev?: string) =>\n // eslint-disable-next-line no-undefined\n [prev === '*' && path !== '*' ? undefined : prev, path].filter(Boolean).join('/');\n\nconst models = require.context('@/pages/', true, /\\.(t|j)sx$/, 'lazy');\n\nconst pathToTree = (input: string[]) => {\n const root: RouterProps[] = [];\n\n for (let i = 0; i < input.length; i++) {\n const chain = input[i].split('/').slice(0, -1);\n let curr = root;\n\n for (let j = 0; j < chain.length; j++) {\n let pathRule = chain[j];\n\n if (pathRule === '') continue;\n if (pathRule === '.') pathRule = '*';\n const lastHierarchy = curr;\n\n // 遍历root是否已有该层级\n if (Array.isArray(curr)) {\n for (let k = 0; k < curr.length; k++) {\n if (curr[k].path === pathRule) {\n curr = curr[k].children as RouterProps[];\n break;\n }\n }\n }\n\n if (lastHierarchy === curr) {\n let key: string = j === chain.length - 1 ? input[i] : chain.slice(0, j + 1).join('/') + '/';\n\n // 截取最后一个 / 前面的数据\n key = key.substring(2, key.lastIndexOf('/'));\n\n const node: RouterProps = {\n key: key,\n path: pathRule,\n i18n: 'route-' + key,\n children: [],\n alive: false,\n element: createElement(lazyImport(key.replace(/:/g, '$'))),\n hideMenu: key.includes(':'),\n };\n\n // 文件,最后一个字符不是\"/“符号\n // if (j === chain.length - 1) delete node.children;\n if (Array.isArray(curr)) curr.push(node);\n curr = node.children as RouterProps[];\n }\n }\n }\n\n return root;\n};\nconst routers: RouterProps[] = pathToTree(\n models.keys().map((item: string) => item.replace(/\\$/g, ':'))\n);\n\nfunction merge(source: RouterProps[], child: RouterProps, prev?: string) {\n const _ = source.find((item) => item.path === child.path);\n\n if (!_) {\n source.push(child);\n } else {\n // 处理key\n _.key = predixKey(_.path, prev);\n if (typeof _.i18n === 'undefined') {\n _.i18n = 'route-' + _.key;\n }\n if (typeof _.alive === 'undefined') {\n _.alive = false;\n }\n if (typeof _.element === 'undefined' && child.element) {\n _.element = child.element;\n }\n if (typeof _.hideMenu === 'undefined') {\n _.hideMenu = _.path === '*' ? true : _.key.includes(':');\n }\n\n Object.assign(_, {\n ...child,\n ..._,\n });\n if (child.children) {\n if (!_.children && Array.isArray(child.children)) {\n _.children = child.children;\n }\n child.children?.forEach((childData) => {\n merge(_?.children as RouterProps[], childData, _?.key);\n });\n }\n }\n}\nconst findLogin = (rs: RouterProps[] = [], onlyLogin: boolean, prevKey?: string): RouterProps[] => {\n return rs\n .map((e) => {\n const _ = { ...e };\n\n if (typeof _.key === 'undefined') {\n _.key = predixKey(e.path, prevKey);\n }\n if (typeof _.i18n === 'undefined') {\n _.i18n = 'route-' + _.key;\n }\n if (typeof _.alive === 'undefined') {\n _.alive = false;\n }\n if (_.path === '*' && typeof _.hideMenu === 'undefined') {\n _.hideMenu = true;\n }\n if (Array.isArray(_.children)) {\n // eslint-disable-next-line no-undefined\n _.children = _.children.length ? findLogin(_.children, onlyLogin, _.key) : undefined;\n }\n if (!_.element) {\n _.element = createElement(lazyImport(_.key.replace(/:/g, '$')));\n }\n return !!_.onlyLogin === onlyLogin && !_.root ? null : _;\n })\n .filter(Boolean) as RouterProps[];\n};\nconst _router: RouterProps[] = [...list];\n\nrouters.forEach((item: RouterProps) => merge(_router, item));\n\n/* 登录前注册的路由 */\nexport const onlyLoginRouter = findLogin(_router, false);\n/* 登录后注册的路由 */\nexport const router = findLogin(_router, true);\n\nexport const matchUtil = (pathname: string) => {\n let p: RouterProps = { key: '' };\n const findPath = (rs: RouterProps[]): void => {\n rs.forEach((item) => {\n if (item.path && item.path !== '*' && item.key) {\n try {\n if (pathToRegexp(item.key).exec(pathname.substring(1) as string)) {\n p = item;\n return;\n }\n // eslint-disable-next-line no-empty\n } catch (error) {}\n }\n if (Array.isArray(item.children)) findPath(item.children);\n });\n };\n\n findPath(router);\n return p;\n};\n"],"names":["lazyImport","pathToRegexp","createElement","lazy","myPkgs","APPTYPE","models","require","context","keys","map","item","key","substring","split","slice","join","push","path","element","list","default","error","console","info","predixKey","prev","undefined","filter","Boolean","pathToTree","input","root","i","length","chain","curr","j","pathRule","lastHierarchy","Array","isArray","k","children","lastIndexOf","node","i18n","alive","replace","hideMenu","includes","routers","merge","source","child","_","find","Object","assign","forEach","childData","findLogin","rs","onlyLogin","prevKey","e","_router","onlyLoginRouter","router","matchUtil","pathname","p","findPath","exec"],"mappings":"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"}
@@ -1,34 +1,22 @@
1
- import React from 'react';
1
+ import { ComponentType, type ReactElement } from 'react';
2
2
  declare type SafeImportParams = {
3
3
  /** 文件路径 */
4
4
  filePath: string;
5
- /** src目录下的文件夹路径 ['src/pages' === 'pages'] */
6
- directory?: string;
7
5
  /** 重试次数 默认:2 */
8
6
  retriesLeft?: number;
9
7
  /** 加载错误时的回调 */
10
8
  onError?: () => void;
11
9
  /** 降级 */
12
- fallback?: any;
10
+ fallback?: ReactElement;
13
11
  };
14
- /**
15
- * 安全的import
16
- * @param {string} filePath 路径
17
- * @param {string} directory src目录下的文件夹路径 ['src/pages' === 'pages']
18
- * @param {number} [retriesLeft=2] 重试次数
19
- * @param {Function} onError 加载错误时的回调
20
- * @param {any} fallback 降级
21
- * @returns {Promise} LazyExoticComponent
22
- * */
23
- export declare const safeImport: ({ filePath, directory, retriesLeft, onError, fallback, }: SafeImportParams) => Promise<{
24
- default: any;
12
+ export declare const safeImport: ({ filePath, retriesLeft, onError, fallback, }: SafeImportParams) => Promise<{
13
+ default: ComponentType;
25
14
  }>;
26
15
  /**
27
16
  * 动态引入
28
17
  * @param {string} filePath 文件路径
29
- * @param {string} directory 文件夹路径
30
18
  * @param {Function} onError 加载错误时的回调
31
19
  * @returns {Promise} LazyExoticComponent
32
20
  * */
33
- export declare const lazyImport: (filePath: string, directory?: string, onError?: () => void) => React.LazyExoticComponent<React.ComponentType>;
21
+ export declare const lazyImport: (filePath: string, onError?: () => void) => React.LazyExoticComponent<ComponentType>;
34
22
  export {};
@@ -1,2 +1,2 @@
1
- import React from"react";import{Outlet}from"react-router-dom";export var safeImport=function(param){var filePath=param.filePath,directory=param.directory,_param_retriesLeft=param.retriesLeft,retriesLeft=_param_retriesLeft===void 0?2:_param_retriesLeft,onError=param.onError,fallback=param.fallback;var filePaths=filePath.startsWith("/")?filePath.slice(1):filePath;var _directory=directory||"pages";return new Promise(function(resolve){return import("@/"+_directory+(_directory===""?"":"/")+filePaths).then(resolve).catch(function(){if(retriesLeft===1){if(onError){onError()}return Promise.resolve({default:fallback})}return safeImport({filePath:filePath,retriesLeft:retriesLeft-1,directory:directory,onError:onError,fallback:fallback})})})};export var lazyImport=function(filePath,directory,onError){var filePaths=filePath.startsWith("/")?filePath.slice(1):filePath;var _directory=directory||"pages";return React.lazy(function(){return safeImport({filePath:filePath,directory:directory,onError:onError,fallback:React.createElement("div",{path:_directory+"/"+filePaths},React.createElement(Outlet))})})};
1
+ import{createElement,lazy}from"react";import{Outlet}from"react-router-dom";export var safeImport=function(param){var filePath=param.filePath,_param_retriesLeft=param.retriesLeft,retriesLeft=_param_retriesLeft===void 0?2:_param_retriesLeft,onError=param.onError,fallback=param.fallback;var filePaths=filePath.startsWith("/")?filePath.slice(1):filePath;return new Promise(function(resolve){return import("@/pages/"+filePaths).then(resolve).catch(function(){if(retriesLeft===1){if(onError){onError()}return Promise.resolve({default:fallback})}return safeImport({filePath:filePath,retriesLeft:retriesLeft-1,onError:onError,fallback:fallback})})})};export var lazyImport=function(filePath,onError){var filePaths=filePath.startsWith("/")?filePath.slice(1):filePath;return lazy(function(){return safeImport({filePath:filePath,onError:onError,fallback:createElement("div",{path:"pages/"+filePaths},createElement(Outlet))})})};
2
2
  //# sourceMappingURL=lazy-import.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/lazy-import.ts"],"sourcesContent":["import React from 'react';\nimport { Outlet } from 'react-router-dom';\n\ntype SafeImportParams = {\n /** 文件路径 */\n filePath: string;\n /** src目录下的文件夹路径 ['src/pages' === 'pages'] */\n directory?: string;\n /** 重试次数 默认:2 */\n retriesLeft?: number;\n /** 加载错误时的回调 */\n onError?: () => void;\n /** 降级 */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fallback?: any;\n};\n\n/**\n * 安全的import\n * @param {string} filePath 路径\n * @param {string} directory src目录下的文件夹路径 ['src/pages' === 'pages']\n * @param {number} [retriesLeft=2] 重试次数\n * @param {Function} onError 加载错误时的回调\n * @param {any} fallback 降级\n * @returns {Promise} LazyExoticComponent\n * */\nexport const safeImport = ({\n filePath,\n directory,\n retriesLeft = 2,\n onError,\n fallback,\n}: SafeImportParams): Promise<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: any;\n}> => {\n const filePaths = filePath.startsWith('/') ? filePath.slice(1) : filePath;\n const _directory = directory || 'pages';\n\n return new Promise((resolve) =>\n import(\n /* webpackChunkName: \"[request]\" */\n '@/' + _directory + (_directory === '' ? '' : '/') + filePaths\n )\n .then(resolve)\n .catch(() => {\n if (retriesLeft === 1) {\n if (onError) {\n onError();\n }\n return Promise.resolve({\n default: fallback,\n });\n }\n // 失败之后重载\n return safeImport({\n filePath,\n retriesLeft: retriesLeft - 1,\n directory,\n onError,\n fallback,\n });\n })\n );\n};\n\n/**\n * 动态引入\n * @param {string} filePath 文件路径\n * @param {string} directory 文件夹路径\n * @param {Function} onError 加载错误时的回调\n * @returns {Promise} LazyExoticComponent\n * */\nexport const lazyImport = (\n filePath: string,\n directory?: string,\n onError?: () => void\n): React.LazyExoticComponent<React.ComponentType> => {\n const filePaths = filePath.startsWith('/') ? filePath.slice(1) : filePath;\n const _directory = directory || 'pages';\n\n return React.lazy(() =>\n safeImport({\n filePath,\n directory,\n onError,\n fallback: React.createElement(\n 'div',\n {\n path: _directory + '/' + filePaths,\n },\n React.createElement(Outlet)\n ),\n })\n );\n};\n"],"names":["React","Outlet","safeImport","filePath","directory","retriesLeft","onError","fallback","filePaths","startsWith","slice","_directory","Promise","resolve","then","catch","default","lazyImport","lazy","createElement","path"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,MAAM,KAAQ,kBAAmB,AAyB1C,QAAO,IAAMC,WAAa,eASpB,KARJC,eAAAA,SACAC,gBAAAA,mCACAC,YAAAA,wCAAc,qBACdC,cAAAA,QACAC,eAAAA,SAKA,IAAMC,UAAYL,SAASM,UAAU,CAAC,KAAON,SAASO,KAAK,CAAC,GAAKP,QAAQ,CACzE,IAAMQ,WAAaP,WAAa,QAEhC,OAAO,IAAIQ,QAAQ,SAACC,gBAClB,MAAM,CAEJ,KAAOF,WAAcA,CAAAA,aAAe,GAAK,GAAK,GAAG,AAAD,EAAKH,WAEpDM,IAAI,CAACD,SACLE,KAAK,CAAC,UAAM,CACX,GAAIV,cAAgB,EAAG,CACrB,GAAIC,QAAS,CACXA,SACF,CAAC,AACD,OAAOM,QAAQC,OAAO,CAAC,CACrBG,QAAST,QACX,EACF,CAAC,AAED,OAAOL,WAAW,CAChBC,SAAAA,SACAE,YAAaA,YAAc,EAC3BD,UAAAA,UACAE,QAAAA,QACAC,SAAAA,QACF,EACF,IAEN,CAAE,AASF,QAAO,IAAMU,WAAa,SACxBd,SACAC,UACAE,QACmD,CACnD,IAAME,UAAYL,SAASM,UAAU,CAAC,KAAON,SAASO,KAAK,CAAC,GAAKP,QAAQ,CACzE,IAAMQ,WAAaP,WAAa,QAEhC,OAAOJ,MAAMkB,IAAI,CAAC,kBAChBhB,WAAW,CACTC,SAAAA,SACAC,UAAAA,UACAE,QAAAA,QACAC,SAAUP,MAAMmB,aAAa,CAC3B,MACA,CACEC,KAAMT,WAAa,IAAMH,SAC3B,EACAR,MAAMmB,aAAa,CAAClB,QAExB,IAEJ,CAAE"}
1
+ {"version":3,"sources":["../../src/utils/lazy-import.ts"],"sourcesContent":["import { ComponentType, createElement, lazy, type ReactElement } from 'react';\nimport { Outlet } from 'react-router-dom';\n\ntype SafeImportParams = {\n /** 文件路径 */\n filePath: string;\n /** 重试次数 默认:2 */\n retriesLeft?: number;\n /** 加载错误时的回调 */\n onError?: () => void;\n /** 降级 */\n fallback?: ReactElement;\n};\n\n// 安全的import\nexport const safeImport = ({\n filePath,\n retriesLeft = 2,\n onError,\n fallback,\n}: SafeImportParams): Promise<{\n default: ComponentType;\n}> => {\n const filePaths = filePath.startsWith('/') ? filePath.slice(1) : filePath;\n\n return new Promise((resolve) =>\n import(\n /* webpackChunkName: \"[request]\" */\n '@/pages/' + filePaths\n )\n .then(resolve)\n .catch(() => {\n if (retriesLeft === 1) {\n if (onError) {\n onError();\n }\n return Promise.resolve({\n default: fallback as unknown as ComponentType,\n });\n }\n // 失败之后重载\n return safeImport({\n filePath,\n retriesLeft: retriesLeft - 1,\n onError,\n fallback,\n });\n })\n );\n};\n\n/**\n * 动态引入\n * @param {string} filePath 文件路径\n * @param {Function} onError 加载错误时的回调\n * @returns {Promise} LazyExoticComponent\n * */\nexport const lazyImport = (\n filePath: string,\n onError?: () => void\n): React.LazyExoticComponent<ComponentType> => {\n const filePaths = filePath.startsWith('/') ? filePath.slice(1) : filePath;\n\n return lazy(() =>\n safeImport({\n filePath,\n onError,\n fallback: createElement(\n 'div',\n {\n path: 'pages/' + filePaths,\n },\n createElement(Outlet)\n ),\n })\n );\n};\n"],"names":["createElement","lazy","Outlet","safeImport","filePath","retriesLeft","onError","fallback","filePaths","startsWith","slice","Promise","resolve","then","catch","default","lazyImport","path"],"mappings":"AAAA,OAAwBA,aAAa,CAAEC,IAAI,KAA2B,OAAQ,AAC9E,QAASC,MAAM,KAAQ,kBAAmB,AAc1C,QAAO,IAAMC,WAAa,eAOpB,KANJC,eAAAA,kCACAC,YAAAA,wCAAc,qBACdC,cAAAA,QACAC,eAAAA,SAIA,IAAMC,UAAYJ,SAASK,UAAU,CAAC,KAAOL,SAASM,KAAK,CAAC,GAAKN,QAAQ,CAEzE,OAAO,IAAIO,QAAQ,SAACC,gBAClB,MAAM,CAEJ,WAAaJ,WAEZK,IAAI,CAACD,SACLE,KAAK,CAAC,UAAM,CACX,GAAIT,cAAgB,EAAG,CACrB,GAAIC,QAAS,CACXA,SACF,CAAC,AACD,OAAOK,QAAQC,OAAO,CAAC,CACrBG,QAASR,QACX,EACF,CAAC,AAED,OAAOJ,WAAW,CAChBC,SAAAA,SACAC,YAAaA,YAAc,EAC3BC,QAAAA,QACAC,SAAAA,QACF,EACF,IAEN,CAAE,AAQF,QAAO,IAAMS,WAAa,SACxBZ,SACAE,QAC6C,CAC7C,IAAME,UAAYJ,SAASK,UAAU,CAAC,KAAOL,SAASM,KAAK,CAAC,GAAKN,QAAQ,CAEzE,OAAOH,KAAK,kBACVE,WAAW,CACTC,SAAAA,SACAE,QAAAA,QACAC,SAAUP,cACR,MACA,CACEiB,KAAM,SAAWT,SACnB,EACAR,cAAcE,QAElB,IAEJ,CAAE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "2.0.0-beta.4",
3
+ "version": "2.0.0-beta.6",
4
4
  "description": "core",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -26,9 +26,8 @@
26
26
  "@swc/core": "1.3.21",
27
27
  "@swc/helpers": "0.4.14",
28
28
  "@swc/plugin-emotion": "2.5.21",
29
- "@swc/plugin-transform-imports": "1.5.30",
29
+ "@swc/plugin-transform-imports": "1.5.21",
30
30
  "add-asset-html-webpack-plugin": "5.0.2",
31
- "antd-dayjs-webpack-plugin": "1.0.6",
32
31
  "core-js": "3.26.0",
33
32
  "cross-env": "7.0.3",
34
33
  "css-loader": "6.7.2",