@moneko/core 2.0.0-beta.23 → 2.0.0-beta.26
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.
- package/build/module.config.js +1 -1
- package/build/swcrc.js +1 -1
- package/build/webpack.common.js +1 -1
- package/lib/components/app-router/index.d.ts +3 -2
- package/lib/components/app-router/index.js +1 -1
- package/lib/components/app-router/index.js.map +1 -1
- package/lib/components/fallback/index.js +1 -1
- package/lib/components/fallback/index.js.map +1 -1
- package/lib/components/readme/index.d.ts +3 -0
- package/lib/components/readme/index.js +2 -0
- package/lib/components/readme/index.js.map +1 -0
- package/lib/components/readme/index.less +4 -0
- package/lib/packages/library/app.d.ts +0 -4
- package/lib/packages/library/app.js +1 -1
- package/lib/packages/library/app.js.map +1 -1
- package/lib/packages/library/index.d.ts +4 -0
- package/lib/packages/library/index.js +1 -1
- package/lib/packages/library/index.js.map +1 -1
- package/lib/router/index.d.ts +3 -2
- package/lib/router/index.js +1 -1
- package/lib/router/index.js.map +1 -1
- package/lib/utils/lazy-import.d.ts +34 -0
- package/lib/utils/lazy-import.js +2 -0
- package/lib/utils/lazy-import.js.map +1 -0
- package/package.json +6 -5
package/build/module.config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _miniCssExtractPlugin=_interopRequireDefault(require("mini-css-extract-plugin"));var _miniSvgDataUri=_interopRequireDefault(require("mini-svg-data-uri"));var _common=require("./common");var _modifyVars=_interopRequireDefault(require("./modifyVars"));var _swcrc=_interopRequireDefault(require("./swcrc"));var _utils=require("./utils");var _hasPkg=require("./has-pkg");var _processEnv=require("./process-env");var _tsloaderConfig=_interopRequireDefault(require("./tsloader.config"));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 _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 _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 _CONFIG_rulesInclude,_CONFIG_rulesInclude1,_CONFIG_rulesInclude2,_CONFIG_rulesInclude3,_CONFIG_rulesInclude4;var cssAssetsPublicPath=_processEnv.APPTYPE==="single-spa"?_common.PUBLICPATH:"../";var styleLoader={loader:_miniCssExtractPlugin.default.loader,options:{publicPath:cssAssetsPublicPath!=="/"?cssAssetsPublicPath:"../"}};var postcssLoader=(0,_hasPkg.hasPkg)("@moneko/postcss")&&{loader:"postcss-loader",options:{postcssOptions:require("@moneko/postcss")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _miniCssExtractPlugin=_interopRequireDefault(require("mini-css-extract-plugin"));var _miniSvgDataUri=_interopRequireDefault(require("mini-svg-data-uri"));var _common=require("./common");var _modifyVars=_interopRequireDefault(require("./modifyVars"));var _swcrc=_interopRequireDefault(require("./swcrc"));var _utils=require("./utils");var _hasPkg=require("./has-pkg");var _processEnv=require("./process-env");var _tsloaderConfig=_interopRequireDefault(require("./tsloader.config"));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 _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 _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 _CONFIG_rulesInclude,_CONFIG_rulesInclude1,_CONFIG_rulesInclude2,_CONFIG_rulesInclude3,_CONFIG_rulesInclude4;var cssAssetsPublicPath=_processEnv.APPTYPE==="single-spa"?_common.PUBLICPATH:"../";var styleLoader={loader:_miniCssExtractPlugin.default.loader,options:{publicPath:cssAssetsPublicPath!=="/"?cssAssetsPublicPath:"../"}};var postcssLoader=(0,_hasPkg.hasPkg)("@moneko/postcss")&&{loader:"postcss-loader",options:{postcssOptions:require("@moneko/postcss")}};if(_processEnv.DEV){styleLoader="style-loader"}var customCssModules=(0,_utils.resolveNodeModulesPath)(_toConsumableArray(_common.CONFIG.cssModules).concat([_processEnv.pkgName,"neko-ui"]));var styleResources=_toConsumableArray((0,_utils.resolveNodeModulesPath)(["".concat(_processEnv.pkgName,"/lib/styles/eval/*.less")])).concat(_toConsumableArray((0,_utils.resolveProgramPath)(["src/styles/variables/*.less","src/styles/mixins/*.less","site/styles/variables/*.less","site/styles/mixins/*.less"])));var entryResolveProgramPath=(0,_utils.resolveProgramPath)(["components","example","mock","site","src"]);var lessLoaderRule=[styleLoader,{loader:"css-loader",options:{modules:{auto:function(resourcePath){for(var i=0,len=customCssModules.length;i<len;i++){if(resourcePath&&(resourcePath===null||resourcePath===void 0?void 0:resourcePath.includes(customCssModules[i]))){return RegExp("(.*(?<!\\.global\\.(le|c)ss)$)","i").test(resourcePath)}}return RegExp("(^(?!.*node_modules))(.*(?<!\\.global\\.(le|c)ss)$)","i").test(resourcePath)},localIdentName:"[path][name]__[local]",exportLocalsConvention:"dashesOnly"},importLoaders:2}},postcssLoader,{loader:"css-unicode-loader"},{loader:"less-loader",options:{sourceMap:!!_common.CONFIG.sourceMap,lessOptions:{modifyVars:_modifyVars.default,javascriptEnabled:true}}},{loader:"style-resources-loader",options:{patterns:styleResources}}].filter(Boolean);var tsLoader={loader:_common.CONFIG.compiler==="tsc"?"ts-loader":"swc-loader",options:_common.CONFIG.compiler==="tsc"?_tsloaderConfig.default:(0,_swcrc.default)(_processEnv.DEV)};var moduleOptions={rules:[{oneOf:[{resourceQuery:/raw/,type:"asset/source"},{test:/\.less$/,use:lessLoaderRule,include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((_CONFIG_rulesInclude=_common.CONFIG.rulesInclude)===null||_CONFIG_rulesInclude===void 0?void 0:_CONFIG_rulesInclude.less)||[]))},{test:/\.css$/,use:[styleLoader,"css-loader",postcssLoader].filter(Boolean),include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((_CONFIG_rulesInclude1=_common.CONFIG.rulesInclude)===null||_CONFIG_rulesInclude1===void 0?void 0:_CONFIG_rulesInclude1.css)||[]))},{test:/\.(gif|png|jpe?g|ico|mp4)$/i,type:"asset",generator:{filename:"assets/images/[name][ext][query]"},include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((_CONFIG_rulesInclude2=_common.CONFIG.rulesInclude)===null||_CONFIG_rulesInclude2===void 0?void 0:_CONFIG_rulesInclude2.media)||[]))},{test:/\.(eot|ttf|otf|woff(|2))$/,type:"asset",generator:{filename:"assets/fonts/[name][ext][query]"},include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((_CONFIG_rulesInclude3=_common.CONFIG.rulesInclude)===null||_CONFIG_rulesInclude3===void 0?void 0:_CONFIG_rulesInclude3.fonts)||[]))},{test:/\.svg$/,type:"asset/inline",generator:{dataUrl:function(content){return(0,_miniSvgDataUri.default)(typeof content!=="string"?content.toString():content)}}},{test:/\.txt$/,type:"asset/source"},{test:/\.(cj|mj|t|j)s(|x)$/,use:_toConsumableArray(_common.CONFIG.prefixJsLoader).concat([tsLoader]).filter(Boolean),include:entryResolveProgramPath.concat((0,_utils.resolveNodeModulesPath)(((_CONFIG_rulesInclude4=_common.CONFIG.rulesInclude)===null||_CONFIG_rulesInclude4===void 0?void 0:_CONFIG_rulesInclude4.js)||[]))},{test:/\.mdx?$/,use:_toConsumableArray(_common.CONFIG.prefixJsLoader).concat([tsLoader,{loader:"@mdx-js/loader",options:{rehypePlugins:[require("@mapbox/rehype-prism"),require("rehype-accessible-emojis").rehypeAccessibleEmojis,require("rehype-figure")],remarkPlugins:[]}}]).filter(Boolean),include:entryResolveProgramPath}]}].concat(_toConsumableArray(_common.CONFIG.moduleRules))};var _default=moduleOptions;
|
package/build/swcrc.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,{swcMinifyOption:function(){return swcMinifyOption},default:function(){return _default}});var _common=require("./common");var _envFlags=_interopRequireDefault(require("./envFlags"));var _webpackMerge=require("webpack-merge");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var swcPolyfill={env:{targets:["last 2 version","> 0.5%","ie 11","not dead"],mode:"entry",coreJs:"3"}};var swcMinifyOption={compress:{top_retain:[],keep_infinity:true,global_defs:{"@alert":"console.log"},pure_funcs:["console.log","console.warn","console.error","console.info"],toplevel:false,drop_console:true,drop_debugger:true,module:false,ecma:2015,ie8:false,keep_classnames:undefined,keep_fnames:false},mangle:true};var _default=function(){var isDev=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;var swcOption={module:{type:"es6",ignoreDynamic:true,strict:true,strictMode:true,lazy:true,noInterop:true},jsc:{parser:{syntax:"typescript",decorators:true,dynamicImport:true,tsx:true},loose:true,target:"es2022",externalHelpers:true,transform:{legacyDecorator:true,decoratorMetadata:true,react:{runtime:"automatic",throwIfNamespace:true,useBuiltins:true,refresh:isDev,development:isDev},constModules:{globals:{"env-flags":_envFlags.default}},optimizer:{simplify:false}}},sourceMaps:true};var swcrc=Object.assign(swcOption,!isDev&&swcPolyfill);if(_common.CONFIG.swcrc){swcrc=(0,_webpackMerge.merge)(swcrc,typeof _common.CONFIG.swcrc==="function"?_common.CONFIG.swcrc(isDev):_common.CONFIG.swcrc)}return swcrc};
|
|
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,{swcMinifyOption:function(){return swcMinifyOption},default:function(){return _default}});var _common=require("./common");var _envFlags=_interopRequireDefault(require("./envFlags"));var _webpackMerge=require("webpack-merge");var _swcPluginImportOnDemand=_interopRequireDefault(require("swc-plugin-import-on-demand"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var swcPolyfill={env:{targets:["last 2 version","> 0.5%","ie 11","not dead"],mode:"entry",coreJs:"3"}};var swcMinifyOption={compress:{top_retain:[],keep_infinity:true,global_defs:{"@alert":"console.log"},pure_funcs:["console.log","console.warn","console.error","console.info"],toplevel:false,drop_console:true,drop_debugger:true,module:false,ecma:2015,ie8:false,keep_classnames:undefined,keep_fnames:false},mangle:true};var _default=function(){var isDev=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;var swcOption={module:{type:"es6",ignoreDynamic:true,strict:true,strictMode:true,lazy:true,noInterop:true},jsc:{parser:{syntax:"typescript",decorators:true,dynamicImport:true,tsx:true},loose:true,target:"es2022",externalHelpers:true,transform:{legacyDecorator:true,decoratorMetadata:true,react:{runtime:"automatic",throwIfNamespace:true,useBuiltins:true,refresh:isDev,development:isDev},constModules:{globals:{"env-flags":_envFlags.default}},optimizer:{simplify:false}}},sourceMaps:true};var swcrc=Object.assign(swcOption,!isDev&&swcPolyfill,_common.CONFIG.importOnDemand&&{plugin:function(m){return new _swcPluginImportOnDemand.default(_common.CONFIG.importOnDemand).visitProgram(m)}});if(_common.CONFIG.swcrc){swcrc=(0,_webpackMerge.merge)(swcrc,typeof _common.CONFIG.swcrc==="function"?_common.CONFIG.swcrc(isDev):_common.CONFIG.swcrc)}return swcrc};
|
package/build/webpack.common.js
CHANGED
|
@@ -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 _processEnv=require("./process-env");var _htmlPluginOption=_interopRequireDefault(require("./html-plugin-option"));
|
|
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 _antdConfig=require("./antd-config");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 outputConfig={path:_path.default.join(_processEnv.PROGRAMPATH,_processEnv.APPTYPE==="library"?"./docs":"./dist"),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),pathinfo:false,clean:true,publicPath:_common.PUBLICPATH};var mainEntry=_path.default.join(__dirname,"../lib/packages/".concat(_common.ENTRYPATH[_processEnv.APPTYPE],"/index.js"));if(_processEnv.APPTYPE==="single-component"){Object.assign(alias,_defineProperty({},_processEnv.PACKAGENAME,_path.default.resolve(_processEnv.PROGRAMPATH,"./umd")));mainEntry=_path.default.join(_processEnv.PROGRAMPATH,_processEnv.DEV?"./example/index.ts":"./src/index.ts");outputConfig.path=_path.default.join(_processEnv.PROGRAMPATH,_processEnv.DEV?"./dist":"./umd");outputConfig.filename="index.js";outputConfig.library=_processEnv.PACKAGENAME;outputConfig.libraryTarget="umd";outputConfig.libraryExport="default"}var entryMap={main:mainEntry};if(_common.CONFIG.entry){if(typeof _common.CONFIG.entry==="string"){entryMap=_common.CONFIG.entry}else if(Object.keys(_common.CONFIG.entry)){Object.assign(entryMap,_common.CONFIG.entry)}}if(_common.CONFIG.output){if(typeof _common.CONFIG.output==="string"){outputConfig.path=_common.CONFIG.output}else if(Object.keys(_common.CONFIG.output)){Object.assign(outputConfig,_common.CONFIG.output)}}var config={entry:entryMap,stats:"errors-only",infrastructureLogging:{level:"none"},target:"web",plugins:[new _webpack.AutomaticPrefetchPlugin,_antdConfig.AntdDayjsWebpackPlugin&&new _antdConfig.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:outputConfig};var _default=config;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import type { RouterProps } from '../../router';
|
|
3
4
|
interface AppRouterProps {
|
|
4
5
|
router: RouterProps[];
|
|
5
|
-
fallback?:
|
|
6
|
+
fallback?: ReactNode;
|
|
6
7
|
}
|
|
7
8
|
declare const _default: React.NamedExoticComponent<AppRouterProps>;
|
|
8
9
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React,{Suspense,useCallback}from"react";import{useRoutes}from"react-router-dom";import{
|
|
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)};export default React.memo(AppRoute,function(pre,next){return isEqual(pre.router,next.router)});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/app-router/index.tsx"],"sourcesContent":["import React, { Suspense, useCallback } from 'react';\nimport { useRoutes } from 'react-router-dom';\nimport { type RouterProps } from '../../router';\nimport { isEqual } from '@moneko/common';\
|
|
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\nexport default React.memo(AppRoute, (pre, next) => isEqual(pre.router, next.router));\n\n// import React, { Suspense, useCallback } from 'react';\n// import { useRoutes } from 'react-router-dom';\n// import { type RouterProps } from '../../router';\n// import { isEqual } from '@moneko/common';\n// import Fallback from '../fallback';\n\n// interface AppRouterProps {\n// router: RouterProps[];\n// fallback?: React.ReactElement;\n// }\n\n// const AppRoute: React.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: React.createElement(\n// Suspense,\n// {\n// fallback: r.fallback || fallback,\n// },\n// React.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// const routers = useRoutes(prefixRouter(router));\n\n// return <>{routers}</>;\n// };\n\n// export default React.memo(AppRoute, (pre, next) => isEqual(pre.router, next.router));\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","memo","pre","next"],"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,CAEA,gBAAerD,MAAMsD,IAAI,CAACnB,SAAU,SAACoB,IAAKC,aAAS/C,QAAQ8C,IAAInB,MAAM,CAAEoB,KAAKpB,MAAM,GAAG"}
|
|
@@ -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 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);
|
|
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(<>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 React.memo(Fallback
|
|
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(<>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 React.memo(Fallback);\n"],"names":["React","useMemo","useState","useOutlet","FallbackComp","Fallback","outlet","props","children","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,wCAAE,kBAAxBO,GAAaP,aAATQ,MAASR,aAEpBD,QAAQ,UAAM,CACZ,GAAI,OAAOU,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,gBAAeT,MAAMmB,IAAI,CAACd,SAAU"}
|
|
@@ -0,0 +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 _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 _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,{useEffect,useState}from"react";import styles from"./index.less";var Readme=function(param){var path=param.path;var _useState=_slicedToArray(useState(""),2),doc=_useState[0],setDoc=_useState[1];useEffect(function(){try{var text=require("@pkg/"+path+"/README.mdx");setDoc(text.default)}catch(error){setDoc(JSON.stringify(error))}},[path]);return React.createElement("div",{className:"".concat(styles.prefixCls,"-markdown-box")},doc)};export default Readme;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/readme/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport styles from './index.less';\n\nconst Readme: React.FC<PureComponentProps> = ({ path }) => {\n const [doc, setDoc] = useState<React.ReactElement | string>('');\n\n useEffect(() => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const text = require('@pkg/' + path + '/README.mdx');\n\n setDoc(text.default);\n } catch (error) {\n setDoc(JSON.stringify(error));\n }\n }, [path]);\n\n return <div className={`${styles.prefixCls}-markdown-box`}>{doc}</div>;\n};\n\nexport default Readme;\n"],"names":["React","useEffect","useState","styles","Readme","path","doc","setDoc","text","require","default","error","JSON","stringify","div","className","prefixCls"],"mappings":"AAAA,2zCAAA,OAAOA,OAASC,SAAS,CAAEC,QAAQ,KAAQ,OAAQ,AACnD,QAAOC,WAAY,cAAe,CAElC,IAAMC,OAAuC,eAAc,KAAXC,WAAAA,KAC9C,IAAsBH,yBAAAA,SAAsC,OAArDI,IAAeJ,aAAVK,OAAUL,aAEtBD,UAAU,UAAM,CACd,GAAI,CAEF,IAAMO,KAAOC,QAAQ,QAAUJ,KAAO,eAEtCE,OAAOC,KAAKE,OAAO,CACrB,CAAE,MAAOC,MAAO,CACdJ,OAAOK,KAAKC,SAAS,CAACF,OACxB,CACF,EAAG,CAACN,KAAK,EAET,OAAO,oBAACS,OAAIC,UAAW,AAAC,GAAmB,OAAjBZ,OAAOa,SAAS,CAAC,kBAAiBV,IAC9D,CAEA,gBAAeF,MAAO"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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)}import React from"react";import{BrowserRouter,HashRouter}from"react-router-dom";import{router}from"../../router";import AppRouter from"../../components/app-router";
|
|
1
|
+
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)}import React from"react";import{BrowserRouter,HashRouter}from"react-router-dom";import{router}from"../../router";import AppRouter from"../../components/app-router";var Router;switch(programInfo.routerMode){case"hash":Router=HashRouter;break;case"browser":default:Router=BrowserRouter;break}var I18n=hasLocales?require("i18n-hooks").I18nProvider:React.Fragment;var IDCProvider=React.Fragment,idcProps={};if(hasModels){var idc=require("mini-idc");idcProps={store:idc.rootStore};IDCProvider=idc.Provider}var App=function(){var props={basename:programInfo.routeBaseName};if(programInfo.routerMode!=="browser"){props={}}return React.createElement(I18n,null,React.createElement(IDCProvider,_extends({},idcProps),React.createElement(Router,_extends({},props),React.createElement(AppRouter,{router:router}))))};export default App;
|
|
2
2
|
//# sourceMappingURL=app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/library/app.tsx"],"sourcesContent":["import React from 'react';\nimport { BrowserRouter, HashRouter } from 'react-router-dom';\nimport { router } from '../../router';\nimport AppRouter from '../../components/app-router';\
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/library/app.tsx"],"sourcesContent":["import React from 'react';\nimport { BrowserRouter, HashRouter } from 'react-router-dom';\nimport { router } from '../../router';\nimport AppRouter from '../../components/app-router';\n\nlet Router: typeof HashRouter | typeof BrowserRouter;\n\nswitch (programInfo.routerMode) {\n case 'hash':\n Router = HashRouter;\n break;\n case 'browser':\n default:\n Router = BrowserRouter;\n break;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst I18n = hasLocales ? require('i18n-hooks').I18nProvider : React.Fragment;\nlet IDCProvider: typeof React.Fragment = React.Fragment,\n idcProps = {};\n\nif (hasModels) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const idc = require('mini-idc');\n\n idcProps = { store: idc.rootStore };\n IDCProvider = idc.Provider;\n}\nconst App: React.FC = () => {\n let props: Record<string, string> = {\n basename: programInfo.routeBaseName,\n };\n\n if (programInfo.routerMode !== 'browser') {\n props = {};\n }\n return (\n <I18n>\n <IDCProvider {...idcProps}>\n <Router {...props}>\n <AppRouter router={router} />\n </Router>\n </IDCProvider>\n </I18n>\n );\n};\n\nexport default App;\n"],"names":["React","BrowserRouter","HashRouter","router","AppRouter","Router","programInfo","routerMode","I18n","hasLocales","require","I18nProvider","Fragment","IDCProvider","idcProps","hasModels","idc","store","rootStore","Provider","App","props","basename","routeBaseName"],"mappings":"AAAA,oRAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,aAAa,CAAEC,UAAU,KAAQ,kBAAmB,AAC7D,QAASC,MAAM,KAAQ,cAAe,AACtC,QAAOC,cAAe,6BAA8B,CAEpD,IAAIC,OAEJ,OAAQC,YAAYC,UAAU,EAC5B,IAAK,OACHF,OAASH,WACT,KAAM,AACR,KAAK,UACL,QACEG,OAASJ,cACT,KAAM,AACV,CAGA,IAAMO,KAAOC,WAAaC,QAAQ,cAAcC,YAAY,CAAGX,MAAMY,QAAQ,CAC7E,IAAIC,YAAqCb,MAAMY,QAAQ,CACrDE,SAAW,CAAC,EAEd,GAAIC,UAAW,CAEb,IAAMC,IAAMN,QAAQ,YAEpBI,SAAW,CAAEG,MAAOD,IAAIE,SAAS,AAAC,EAClCL,YAAcG,IAAIG,QAAQ,AAC5B,CAAC,AACD,IAAMC,IAAgB,UAAM,CAC1B,IAAIC,MAAgC,CAClCC,SAAUhB,YAAYiB,aAAa,AACrC,EAEA,GAAIjB,YAAYC,UAAU,GAAK,UAAW,CACxCc,MAAQ,CAAC,CACX,CAAC,AACD,OACE,oBAACb,UACC,oBAACK,wBAAgBC,UACf,oBAACT,mBAAWgB,OACV,oBAACjB,WAAUD,OAAQA,WAK7B,CAEA,gBAAeiB,GAAI"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import '../../utils/env';
|
|
2
2
|
import '../../utils/refresh-rem';
|
|
3
|
+
import '../../styles/normalize.css';
|
|
4
|
+
import '../../styles/animation.css';
|
|
5
|
+
import '../../styles/variables.css';
|
|
6
|
+
import '../../styles/global.css';
|
|
3
7
|
declare const bootstrap: typeof import("./bootstrap");
|
|
4
8
|
export default bootstrap;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../../utils/env";import"../../utils/refresh-rem";var bootstrap=await import("./bootstrap");export default bootstrap;
|
|
1
|
+
import"../../utils/env";import"../../utils/refresh-rem";import"../../styles/normalize.css";import"../../styles/animation.css";import"../../styles/variables.css";import"../../styles/global.css";var bootstrap=await import("./bootstrap");export default bootstrap;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/library/index.ts"],"sourcesContent":["import '../../utils/env';\nimport '../../utils/refresh-rem';\n\nconst bootstrap = await import('./bootstrap');\n\nexport default bootstrap;\n"],"names":["bootstrap"],"mappings":"AAAA,MAAO,iBAAkB,AACzB,OAAO,yBAA0B,CAEjC,IAAMA,UAAY,MAAM,MAAM,CAAC,cAE/B,gBAAeA,SAAU"}
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/library/index.ts"],"sourcesContent":["import '../../utils/env';\nimport '../../utils/refresh-rem';\nimport '../../styles/normalize.css';\nimport '../../styles/animation.css';\nimport '../../styles/variables.css';\nimport '../../styles/global.css';\n\nconst bootstrap = await import('./bootstrap');\n\nexport default bootstrap;\n"],"names":["bootstrap"],"mappings":"AAAA,MAAO,iBAAkB,AACzB,OAAO,yBAA0B,AACjC,OAAO,4BAA6B,AACpC,OAAO,4BAA6B,AACpC,OAAO,4BAA6B,AACpC,OAAO,yBAA0B,CAEjC,IAAMA,UAAY,MAAM,MAAM,CAAC,cAE/B,gBAAeA,SAAU"}
|
package/lib/router/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type ReactElement } from 'react';
|
|
2
|
+
import type { KeepAliveProps } from 'react-activation';
|
|
2
3
|
export interface RouterProps {
|
|
3
4
|
key: string;
|
|
4
|
-
alive?: boolean;
|
|
5
|
+
alive?: KeepAliveProps | boolean;
|
|
5
6
|
icon?: ReactElement;
|
|
6
7
|
dynamicTitle?: string;
|
|
7
8
|
i18n?: string | null;
|
|
@@ -16,7 +17,7 @@ export interface RouterProps {
|
|
|
16
17
|
closable?: boolean;
|
|
17
18
|
children?: RouterProps[];
|
|
18
19
|
}
|
|
19
|
-
export declare const lazyImport: (filePath: string) => import("react").
|
|
20
|
+
export declare const lazyImport: (filePath: string) => import("react").LazyExoticComponent<import("react").ComponentType<any>>;
|
|
20
21
|
export declare const myPkgs: RouterProps[];
|
|
21
22
|
export declare const onlyLoginRouter: RouterProps[];
|
|
22
23
|
export declare const router: RouterProps[];
|
package/lib/router/index.js
CHANGED
|
@@ -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{pathToRegexp}from"path-to-regexp";import{createElement,lazy}from"react";export var lazyImport=function(filePath){return
|
|
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{pathToRegexp}from"path-to-regexp";import{createElement,lazy}from"react";export var lazyImport=function(filePath){return lazy(function(){return import("@/pages/"+filePath.replace(/^\//,""))})};export var myPkgs=[];if(APPTYPE==="library"){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: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
|
package/lib/router/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/router/index.ts"],"sourcesContent":["import { pathToRegexp } from 'path-to-regexp';\nimport { createElement, lazy, type ReactElement } from 'react';\n\nexport interface RouterProps {\n key: string;\n alive?: boolean;\n icon?: ReactElement;\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}\nexport const lazyImport = (filePath: string) => {\n return createElement(\n lazy(\n () =>\n import(\n /* webpackChunkName: \"[request]\" */\n '@/pages/' + filePath.replace(/^\\//, '')\n )\n )\n );\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: 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 = 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":["pathToRegexp","createElement","lazy","lazyImport","filePath","replace","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","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 * as React from 'react';\n// import { lazyImport } from '../utils/lazy-import';\n// import { pathToRegexp } from 'path-to-regexp';\n// import type { ReactNode } from 'react';\n// import type { RouteObject } from 'react-router-dom';\n// import type { KeepAliveProps } from 'react-activation';\n\n// export 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\n// export const myPkgs: RouterProps[] = [];\n// if (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\n// let list: RouterProps[] = [];\n\n// try {\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\n// const predixKey = (path?: string, prev?: string) =>\n// // eslint-disable-next-line no-undefined\n// [prev === '*' && path !== '*' ? undefined : prev, path].filter(Boolean).join('/');\n\n// const models = require.context('@/pages/', true, /\\.(t|j)sx$/, 'lazy');\n\n// const 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// };\n// const routers: RouterProps[] = pathToTree(\n// models.keys().map((item: string) => item.replace(/\\$/g, ':'))\n// );\n\n// function 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// }\n// const 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// };\n// const _router: RouterProps[] = [...list];\n\n// routers.forEach((item: RouterProps) => merge(_router, item));\n\n// /* 登录前注册的路由 */\n// export const onlyLoginRouter = findLogin(_router, false);\n// /* 登录后注册的路由 */\n// export const router = findLogin(_router, true);\n\n// export 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\nimport { pathToRegexp } from 'path-to-regexp';\nimport { createElement, lazy, type ReactElement } from 'react';\nimport type { KeepAliveProps } from 'react-activation';\n\nexport interface RouterProps {\n key: string;\n alive?: KeepAliveProps | boolean;\n icon?: ReactElement;\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}\nexport const lazyImport = (filePath: string) => {\n return lazy(\n () =>\n import(\n /* webpackChunkName: \"[request]\" */\n '@/pages/' + filePath.replace(/^\\//, '')\n )\n );\n};\n\nexport const myPkgs: RouterProps[] = [];\nif (APPTYPE === 'library') {\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: 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":["pathToRegexp","createElement","lazy","lazyImport","filePath","replace","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","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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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type SafeImportParams = {
|
|
3
|
+
/** 文件路径 */
|
|
4
|
+
filePath: string;
|
|
5
|
+
/** src目录下的文件夹路径 ['src/pages' === 'pages'] */
|
|
6
|
+
directory?: string;
|
|
7
|
+
/** 重试次数 默认:2 */
|
|
8
|
+
retriesLeft?: number;
|
|
9
|
+
/** 加载错误时的回调 */
|
|
10
|
+
onError?: () => void;
|
|
11
|
+
/** 降级 */
|
|
12
|
+
fallback?: any;
|
|
13
|
+
};
|
|
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;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* 动态引入
|
|
28
|
+
* @param {string} filePath 文件路径
|
|
29
|
+
* @param {string} directory 文件夹路径
|
|
30
|
+
* @param {Function} onError 加载错误时的回调
|
|
31
|
+
* @returns {Promise} LazyExoticComponent
|
|
32
|
+
* */
|
|
33
|
+
export declare const lazyImport: (filePath: string, directory?: string, onError?: () => void) => React.LazyExoticComponent<React.ComponentType>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +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))})})};
|
|
2
|
+
//# sourceMappingURL=lazy-import.js.map
|
|
@@ -0,0 +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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moneko/core",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.26",
|
|
4
4
|
"description": "core",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,14 +22,15 @@
|
|
|
22
22
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.8",
|
|
23
23
|
"@soda/friendly-errors-webpack-plugin": "1.8.1",
|
|
24
24
|
"@swc/cli": "0.1.57",
|
|
25
|
-
"@swc/core": "1.3.
|
|
26
|
-
"@swc/helpers": "0.4.
|
|
25
|
+
"@swc/core": "1.3.6",
|
|
26
|
+
"@swc/helpers": "0.4.12",
|
|
27
27
|
"@swc/plugin-transform-imports": "1.5.21",
|
|
28
28
|
"add-asset-html-webpack-plugin": "5.0.2",
|
|
29
|
+
"antd-dayjs-webpack-plugin": "1.0.6",
|
|
29
30
|
"core-js": "3.27.2",
|
|
30
31
|
"cross-env": "7.0.3",
|
|
31
|
-
"css-loader": "6.7.
|
|
32
|
-
"css-minimizer-webpack-plugin": "4.2.
|
|
32
|
+
"css-loader": "6.7.1",
|
|
33
|
+
"css-minimizer-webpack-plugin": "4.2.1",
|
|
33
34
|
"css-unicode-loader": "1.0.3",
|
|
34
35
|
"external-remotes-plugin": "1.0.0",
|
|
35
36
|
"fastclick": "1.0.6",
|