@umijs/plugins 4.0.0-beta.8 → 4.0.0-canary-20240513.3

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.
Files changed (98) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -1
  3. package/dist/access.d.ts +1 -1
  4. package/dist/access.js +194 -4
  5. package/dist/{sass.d.ts → analytics.d.ts} +1 -1
  6. package/dist/analytics.js +118 -0
  7. package/dist/antd.d.ts +1 -1
  8. package/dist/antd.js +345 -157
  9. package/dist/{icons.d.ts → confetti.d.ts} +1 -1
  10. package/dist/confetti.js +64 -0
  11. package/dist/constants.d.ts +1 -0
  12. package/dist/constants.js +30 -0
  13. package/dist/dva.d.ts +4 -1
  14. package/dist/dva.js +302 -8
  15. package/dist/initial-state.d.ts +1 -1
  16. package/dist/initial-state.js +147 -4
  17. package/dist/layout.d.ts +1 -1
  18. package/dist/layout.js +754 -4
  19. package/dist/locale.d.ts +2 -1
  20. package/dist/locale.js +257 -4
  21. package/dist/mf.d.ts +2 -0
  22. package/dist/mf.js +358 -0
  23. package/dist/model.d.ts +1 -1
  24. package/dist/model.js +109 -4
  25. package/dist/moment2dayjs.d.ts +3 -0
  26. package/dist/moment2dayjs.js +125 -0
  27. package/dist/qiankun/constants.d.ts +5 -0
  28. package/dist/qiankun/constants.js +41 -0
  29. package/dist/qiankun/master.d.ts +6 -0
  30. package/dist/qiankun/master.js +236 -0
  31. package/dist/qiankun/slave.d.ts +3 -0
  32. package/dist/qiankun/slave.js +345 -0
  33. package/dist/qiankun.d.ts +1 -1
  34. package/dist/qiankun.js +51 -4
  35. package/dist/react-query.d.ts +3 -0
  36. package/dist/react-query.js +193 -0
  37. package/dist/request.d.ts +1 -1
  38. package/dist/request.js +384 -4
  39. package/dist/styled-components.d.ts +3 -0
  40. package/dist/styled-components.js +150 -0
  41. package/dist/tailwindcss.d.ts +3 -0
  42. package/dist/tailwindcss.js +106 -0
  43. package/dist/unocss.d.ts +3 -0
  44. package/dist/unocss.js +71 -0
  45. package/dist/utils/astUtils.d.ts +3 -0
  46. package/dist/utils/astUtils.js +49 -0
  47. package/dist/utils/localeUtils.d.ts +33 -0
  48. package/dist/utils/localeUtils.js +139 -0
  49. package/dist/utils/mfUtils.d.ts +14 -0
  50. package/dist/utils/mfUtils.js +56 -0
  51. package/dist/utils/modelUtils.d.ts +40 -0
  52. package/dist/utils/modelUtils.js +286 -0
  53. package/dist/utils/resolveProjectDep.d.ts +5 -0
  54. package/dist/utils/resolveProjectDep.js +40 -0
  55. package/dist/utils/withTmpPath.d.ts +6 -0
  56. package/dist/utils/withTmpPath.js +39 -0
  57. package/dist/valtio.d.ts +3 -0
  58. package/dist/valtio.js +81 -0
  59. package/libs/dva.tsx +45 -0
  60. package/libs/model.tsx +180 -0
  61. package/libs/qiankun/master/AntdErrorBoundary.tsx +34 -0
  62. package/libs/qiankun/master/AntdLoader.tsx +15 -0
  63. package/libs/qiankun/master/ErrorBoundary.tsx +7 -0
  64. package/libs/qiankun/master/MicroApp.tsx +327 -0
  65. package/libs/qiankun/master/MicroAppWithMemoHistory.tsx +43 -0
  66. package/libs/qiankun/master/common.ts +172 -0
  67. package/libs/qiankun/master/constants.ts +19 -0
  68. package/libs/qiankun/master/getMicroAppRouteComponent.tsx.tpl +45 -0
  69. package/libs/qiankun/master/masterRuntimePlugin.tsx +161 -0
  70. package/libs/qiankun/master/routeUtils.ts +26 -0
  71. package/libs/qiankun/master/types.ts +54 -0
  72. package/libs/qiankun/slave/MicroAppLink.tsx +122 -0
  73. package/libs/qiankun/slave/connectMaster.tsx +14 -0
  74. package/libs/qiankun/slave/constants.ts +5 -0
  75. package/libs/qiankun/slave/lifecycles.ts +164 -0
  76. package/libs/qiankun/slave/qiankunModel.ts +18 -0
  77. package/libs/qiankun/slave/slaveRuntimePlugin.ts +36 -0
  78. package/package.json +54 -24
  79. package/templates/antd/runtime.ts.tpl +170 -0
  80. package/templates/antd/types.d.ts.tpl +17 -0
  81. package/templates/locale/SelectLang.tpl +502 -0
  82. package/templates/locale/locale.tpl +82 -0
  83. package/templates/locale/localeExports.tpl +307 -0
  84. package/templates/locale/runtime.tpl +34 -0
  85. package/templates/mf/runtime.ts.tpl +149 -0
  86. package/dist/access.d.ts.map +0 -1
  87. package/dist/antd.d.ts.map +0 -1
  88. package/dist/dva.d.ts.map +0 -1
  89. package/dist/icons.d.ts.map +0 -1
  90. package/dist/icons.js +0 -5
  91. package/dist/initial-state.d.ts.map +0 -1
  92. package/dist/layout.d.ts.map +0 -1
  93. package/dist/locale.d.ts.map +0 -1
  94. package/dist/model.d.ts.map +0 -1
  95. package/dist/qiankun.d.ts.map +0 -1
  96. package/dist/request.d.ts.map +0 -1
  97. package/dist/sass.d.ts.map +0 -1
  98. package/dist/sass.js +0 -5
package/dist/model.js CHANGED
@@ -1,5 +1,110 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = (api) => {
4
- api;
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
5
10
  };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/model.ts
30
+ var model_exports = {};
31
+ __export(model_exports, {
32
+ default: () => model_default
33
+ });
34
+ module.exports = __toCommonJS(model_exports);
35
+ var t = __toESM(require("@umijs/bundler-utils/compiled/babel/types"));
36
+ var import_fs = require("fs");
37
+ var import_path = require("path");
38
+ var import_plugin_utils = require("umi/plugin-utils");
39
+ var import_modelUtils = require("./utils/modelUtils");
40
+ var import_withTmpPath = require("./utils/withTmpPath");
41
+ var model_default = (api) => {
42
+ api.describe({
43
+ config: {
44
+ schema({ zod }) {
45
+ return zod.object({
46
+ extraModels: zod.array(zod.string())
47
+ }).partial();
48
+ }
49
+ },
50
+ enableBy: api.EnableBy.config
51
+ });
52
+ api.onGenerateFiles(async () => {
53
+ const models = await getAllModels(api);
54
+ api.writeTmpFile({
55
+ path: "model.ts",
56
+ content: import_modelUtils.ModelUtils.getModelsContent(models)
57
+ });
58
+ const indexContent = (0, import_fs.readFileSync)(
59
+ (0, import_path.join)(__dirname, "../libs/model.tsx"),
60
+ "utf-8"
61
+ ).replace("fast-deep-equal", (0, import_plugin_utils.winPath)(require.resolve("fast-deep-equal")));
62
+ api.writeTmpFile({
63
+ path: "index.tsx",
64
+ content: indexContent
65
+ });
66
+ api.writeTmpFile({
67
+ path: "runtime.tsx",
68
+ content: `
69
+ import React from 'react';
70
+ import { Provider } from './';
71
+ import { models as rawModels } from './model';
72
+
73
+ function ProviderWrapper(props: any) {
74
+ const models = React.useMemo(() => {
75
+ return Object.keys(rawModels).reduce((memo, key) => {
76
+ memo[rawModels[key].namespace] = rawModels[key].model;
77
+ return memo;
78
+ }, {});
79
+ }, []);
80
+ return <Provider models={models} {...props}>{ props.children }</Provider>
81
+ }
82
+
83
+ export function dataflowProvider(container, opts) {
84
+ return <ProviderWrapper {...opts}>{ container }</ProviderWrapper>;
85
+ }
86
+ `
87
+ });
88
+ });
89
+ api.addTmpGenerateWatcherPaths(() => {
90
+ return [(0, import_path.join)(api.paths.absSrcPath, "models")];
91
+ });
92
+ api.addRuntimePlugin(() => {
93
+ return [(0, import_withTmpPath.withTmpPath)({ api, path: "runtime.tsx" })];
94
+ });
95
+ };
96
+ async function getAllModels(api) {
97
+ const extraModels = await api.applyPlugins({
98
+ key: "addExtraModels",
99
+ type: api.ApplyPluginsType.add,
100
+ initialValue: []
101
+ });
102
+ return new import_modelUtils.ModelUtils(api, {
103
+ astTest({ node }) {
104
+ return t.isArrowFunctionExpression(node) || t.isFunctionDeclaration(node);
105
+ }
106
+ }).getAllModels({
107
+ sort: {},
108
+ extraModels: [...extraModels, ...api.config.model.extraModels || []]
109
+ });
110
+ }
@@ -0,0 +1,3 @@
1
+ import { IApi } from 'umi';
2
+ declare const _default: (api: IApi) => void;
3
+ export default _default;
@@ -0,0 +1,125 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/moment2dayjs.ts
30
+ var moment2dayjs_exports = {};
31
+ __export(moment2dayjs_exports, {
32
+ default: () => moment2dayjs_default
33
+ });
34
+ module.exports = __toCommonJS(moment2dayjs_exports);
35
+ var import_path = require("path");
36
+ var import_plugin_utils = require("umi/plugin-utils");
37
+ var moment2dayjs_default = (api) => {
38
+ api.describe({
39
+ key: "moment2dayjs",
40
+ config: {
41
+ schema({ zod }) {
42
+ return zod.object({
43
+ preset: zod.enum(["antd", "antdv3", "none"]),
44
+ // 'antd' | 'antdv3 | 'none'
45
+ plugins: zod.array(zod.string())
46
+ }).partial();
47
+ }
48
+ },
49
+ enableBy: api.EnableBy.config
50
+ });
51
+ const presets = {
52
+ antd: [
53
+ "isSameOrBefore",
54
+ "isSameOrAfter",
55
+ "advancedFormat",
56
+ "customParseFormat",
57
+ "weekday",
58
+ "weekYear",
59
+ "weekOfYear",
60
+ "isMoment",
61
+ "localeData",
62
+ "localizedFormat"
63
+ ],
64
+ antdv3: [
65
+ "isSameOrBefore",
66
+ "isSameOrAfter",
67
+ "advancedFormat",
68
+ "customParseFormat",
69
+ "weekday",
70
+ "weekYear",
71
+ "weekOfYear",
72
+ "isMoment",
73
+ "localeData",
74
+ "localizedFormat",
75
+ "badMutable"
76
+ ]
77
+ };
78
+ const getDayjsPlugins = (api2) => {
79
+ let { preset = "antd", plugins = [] } = api2.config.moment2dayjs || {};
80
+ switch (preset) {
81
+ case "antd":
82
+ return Array.from(new Set(presets["antd"].concat(plugins)));
83
+ case "antdv3":
84
+ return Array.from(new Set(presets["antdv3"].concat(plugins)));
85
+ case "none":
86
+ return [].concat(plugins);
87
+ default:
88
+ return [];
89
+ }
90
+ };
91
+ api.modifyConfig((memo) => {
92
+ memo.alias.moment = (0, import_path.dirname)(require.resolve("dayjs/package.json"));
93
+ return memo;
94
+ });
95
+ api.onGenerateFiles(() => {
96
+ const plugins = getDayjsPlugins(api);
97
+ const runtimeTpl = `
98
+ import dayjs from '{{{dayjsPath}}}';
99
+ import antdPlugin from '{{{dayjsAntdPluginPath}}}';
100
+
101
+ {{#plugins}}
102
+ import {{.}} from '{{{dayjsPath}}}/plugin/{{.}}';
103
+ {{/plugins}}
104
+
105
+ {{#plugins}}
106
+ dayjs.extend({{.}});
107
+ {{/plugins}}
108
+
109
+ dayjs.extend(antdPlugin);
110
+ `;
111
+ const dayjsAntdPluginPath = (0, import_plugin_utils.winPath)(
112
+ require.resolve("antd-dayjs-webpack-plugin/src/antd-plugin")
113
+ );
114
+ const dayjsPath = (0, import_plugin_utils.winPath)((0, import_path.dirname)(require.resolve("dayjs/package.json")));
115
+ api.writeTmpFile({
116
+ path: "runtime.tsx",
117
+ content: import_plugin_utils.Mustache.render(runtimeTpl, {
118
+ plugins,
119
+ dayjsPath,
120
+ dayjsAntdPluginPath
121
+ })
122
+ });
123
+ });
124
+ api.addEntryCodeAhead(() => [`import './plugin-moment2dayjs/runtime.tsx'`]);
125
+ };
@@ -0,0 +1,5 @@
1
+ export declare const defaultMasterRootId = "root-master";
2
+ export declare const defaultHistoryType = "browser";
3
+ export declare const qiankunStateForSlaveModelNamespace = "@@qiankunStateForSlave";
4
+ export declare const qiankunStateFromMasterModelNamespace = "@@qiankunStateFromMaster";
5
+ export declare const MODEL_EXPORT_NAME = "useQiankunStateForSlave";
@@ -0,0 +1,41 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/qiankun/constants.ts
20
+ var constants_exports = {};
21
+ __export(constants_exports, {
22
+ MODEL_EXPORT_NAME: () => MODEL_EXPORT_NAME,
23
+ defaultHistoryType: () => defaultHistoryType,
24
+ defaultMasterRootId: () => defaultMasterRootId,
25
+ qiankunStateForSlaveModelNamespace: () => qiankunStateForSlaveModelNamespace,
26
+ qiankunStateFromMasterModelNamespace: () => qiankunStateFromMasterModelNamespace
27
+ });
28
+ module.exports = __toCommonJS(constants_exports);
29
+ var defaultMasterRootId = "root-master";
30
+ var defaultHistoryType = "browser";
31
+ var qiankunStateForSlaveModelNamespace = "@@qiankunStateForSlave";
32
+ var qiankunStateFromMasterModelNamespace = "@@qiankunStateFromMaster";
33
+ var MODEL_EXPORT_NAME = "useQiankunStateForSlave";
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ MODEL_EXPORT_NAME,
37
+ defaultHistoryType,
38
+ defaultMasterRootId,
39
+ qiankunStateForSlaveModelNamespace,
40
+ qiankunStateFromMasterModelNamespace
41
+ });
@@ -0,0 +1,6 @@
1
+ import { IApi } from 'umi';
2
+ export declare function isMasterEnable(opts: {
3
+ userConfig: any;
4
+ }): boolean;
5
+ declare const _default: (api: IApi) => void;
6
+ export default _default;
@@ -0,0 +1,236 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/qiankun/master.ts
30
+ var master_exports = {};
31
+ __export(master_exports, {
32
+ default: () => master_default,
33
+ isMasterEnable: () => isMasterEnable
34
+ });
35
+ module.exports = __toCommonJS(master_exports);
36
+ var import_assert = __toESM(require("assert"));
37
+ var import_fs = require("fs");
38
+ var import_path = require("path");
39
+ var import_umi = require("umi");
40
+ var import_plugin_utils = require("umi/plugin-utils");
41
+ var import_withTmpPath = require("../utils/withTmpPath");
42
+ var import_constants = require("./constants");
43
+ function isMasterEnable(opts) {
44
+ var _a;
45
+ const masterCfg = (_a = opts.userConfig.qiankun) == null ? void 0 : _a.master;
46
+ if (masterCfg) {
47
+ return masterCfg.enable !== false;
48
+ }
49
+ return !!process.env.INITIAL_QIANKUN_MASTER_OPTIONS;
50
+ }
51
+ function getDefaultMicroAppProps(api, key) {
52
+ var _a, _b, _c;
53
+ const microAppProps = (_b = (_a = api.config.qiankun) == null ? void 0 : _a.master) == null ? void 0 : _b[key];
54
+ (0, import_assert.default)(
55
+ !microAppProps || ((_c = microAppProps.startsWith) == null ? void 0 : _c.call(microAppProps, "@/")),
56
+ `[@umijs/plugin-qiankun]: ${key} only support src path, eg: @/${key}`
57
+ );
58
+ return microAppProps;
59
+ }
60
+ var master_default = (api) => {
61
+ api.describe({
62
+ key: "qiankun-master",
63
+ enableBy: isMasterEnable
64
+ });
65
+ api.addRuntimePlugin(() => {
66
+ return [(0, import_withTmpPath.withTmpPath)({ api, path: "masterRuntimePlugin.tsx" })];
67
+ });
68
+ api.modifyDefaultConfig((config) => ({
69
+ ...config,
70
+ mountElementId: import_constants.defaultMasterRootId,
71
+ qiankun: {
72
+ ...config.qiankun,
73
+ master: {
74
+ ...JSON.parse(process.env.INITIAL_QIANKUN_MASTER_OPTIONS || "{}"),
75
+ ...(config.qiankun || {}).master
76
+ }
77
+ }
78
+ }));
79
+ api.modifyRoutes((memo) => {
80
+ Object.keys(memo).forEach((id) => {
81
+ var _a;
82
+ const route = memo[id];
83
+ if (route.microApp) {
84
+ const appName = route.microApp;
85
+ const base = api.config.base || "/";
86
+ const masterHistoryType = ((_a = api.config.history) == null ? void 0 : _a.type) || "browser";
87
+ const routeProps = route.microAppProps || {};
88
+ const normalizedRouteProps = JSON.stringify(routeProps).replace(
89
+ /"/g,
90
+ "'"
91
+ );
92
+ route.file = `(async () => {
93
+ const { getMicroAppRouteComponent } = await import('@@/plugin-qiankun-master/getMicroAppRouteComponent');
94
+ return getMicroAppRouteComponent({ appName: '${appName}', base: '${base}', routePath: '${route.path}', masterHistoryType: '${masterHistoryType}', routeProps: ${normalizedRouteProps} })
95
+ })()`;
96
+ }
97
+ });
98
+ return memo;
99
+ });
100
+ api.addRuntimePluginKey(() => [import_constants.MODEL_EXPORT_NAME]);
101
+ api.register({
102
+ key: "addExtraModels",
103
+ fn() {
104
+ const { path, exports } = api.appData.appJS || {};
105
+ return path && exports.includes(import_constants.MODEL_EXPORT_NAME) ? [
106
+ `${path}#{"namespace":"${import_constants.qiankunStateForSlaveModelNamespace}","exportName":"${import_constants.MODEL_EXPORT_NAME}"}`
107
+ ] : [];
108
+ }
109
+ });
110
+ function getFileContent(file) {
111
+ return (0, import_fs.readFileSync)(
112
+ (0, import_path.join)(__dirname, "../../libs/qiankun/master", file),
113
+ "utf-8"
114
+ );
115
+ }
116
+ api.onGenerateFiles(() => {
117
+ var _a;
118
+ api.writeTmpFile({
119
+ path: import_umi.RUNTIME_TYPE_FILE_NAME,
120
+ content: `
121
+ import { MasterOptions } from './types'
122
+ type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
123
+ type XOR<T, U> = (Without<T, U> & U) | (Without<U, T> & T);
124
+ interface Config {
125
+ master?: MasterOptions;
126
+ }
127
+ export interface IRuntimeConfig {
128
+ qiankun?: XOR<MasterOptions, Config>;
129
+ ${import_constants.MODEL_EXPORT_NAME}?: () => Record<string, any>;
130
+ }
131
+ `
132
+ });
133
+ api.writeTmpFile({
134
+ path: "masterOptions.ts",
135
+ content: `
136
+ let options = ${JSON.stringify({
137
+ masterHistoryType: ((_a = api.config.history) == null ? void 0 : _a.type) || import_constants.defaultHistoryType,
138
+ base: api.config.base || "/",
139
+ ...api.config.qiankun.master
140
+ })};
141
+ export const getMasterOptions = () => options;
142
+ export const setMasterOptions = (newOpts) => options = ({ ...options, ...newOpts });
143
+ `
144
+ });
145
+ api.writeTmpFile({
146
+ path: "MicroAppLoader.tsx",
147
+ content: api.isPluginEnable("antd") ? getFileContent("AntdLoader.tsx") : (
148
+ // 开启了 antd 插件的时候,使用 antd 的 loader 组件,否则提示用户必须设置一个自定义的 loader 组件
149
+ `export default function Loader() { console.warn(\`[plugins/qiankun]: Seems like you'r not using @umijs/plugin-antd, you need to provide a custom loader or set autoSetLoading false to shut down this warning!\`); return null; }`
150
+ )
151
+ });
152
+ api.writeTmpFile({
153
+ path: "defaultErrorBoundary.tsx",
154
+ content: getDefaultMicroAppProps(api, "defaultErrorBoundary") ? `export { default } from '${getDefaultMicroAppProps(
155
+ api,
156
+ "defaultErrorBoundary"
157
+ )}';` : (
158
+ // 返回 null
159
+ `export default null;`
160
+ )
161
+ });
162
+ api.writeTmpFile({
163
+ path: "defaultLoader.tsx",
164
+ content: getDefaultMicroAppProps(api, "defaultLoader") ? `export { default } from '${getDefaultMicroAppProps(
165
+ api,
166
+ "defaultLoader"
167
+ )}';` : (
168
+ // 返回 null
169
+ `export default null;`
170
+ )
171
+ });
172
+ [
173
+ "common.ts",
174
+ "constants.ts",
175
+ "types.ts",
176
+ "routeUtils.ts",
177
+ "masterRuntimePlugin.tsx",
178
+ "getMicroAppRouteComponent.tsx.tpl",
179
+ "ErrorBoundary.tsx",
180
+ "MicroApp.tsx",
181
+ "MicroAppWithMemoHistory.tsx"
182
+ ].forEach((file) => {
183
+ if (file.endsWith(".tpl")) {
184
+ api.writeTmpFile({
185
+ path: file.replace(/\.tpl$/, ""),
186
+ tpl: getFileContent(file),
187
+ context: {
188
+ dynamicRoot: false,
189
+ hasModelPlugin: api.isPluginEnable("model")
190
+ // dynamicRoot:
191
+ // api.config.exportStatic && api.config.exportStatic.dynamicRoot,
192
+ }
193
+ });
194
+ } else {
195
+ let content = getFileContent(file);
196
+ if (!api.config.qiankun.externalQiankun) {
197
+ content = content.replace(
198
+ /from 'qiankun'/g,
199
+ `from '${(0, import_plugin_utils.winPath)((0, import_path.dirname)(require.resolve("qiankun/package")))}'`
200
+ );
201
+ }
202
+ api.writeTmpFile({
203
+ path: file.replace(/\.tpl$/, ""),
204
+ content: content.replace(
205
+ "__USE_MODEL__",
206
+ api.isPluginEnable("model") ? `import { useModel } from '@@/plugin-model'` : `const useModel = null;`
207
+ ).replace(
208
+ /from 'lodash\//g,
209
+ `from '${(0, import_plugin_utils.winPath)((0, import_path.dirname)(require.resolve("lodash/package")))}/`
210
+ )
211
+ });
212
+ }
213
+ });
214
+ api.writeTmpFile({
215
+ path: "index.ts",
216
+ content: `
217
+ export { MicroApp } from './MicroApp';
218
+ export { MicroAppWithMemoHistory } from './MicroAppWithMemoHistory';
219
+ `
220
+ });
221
+ });
222
+ api.chainWebpack((config, { ssr }) => {
223
+ if (ssr) {
224
+ const originalExternals = config.get("externals");
225
+ config.externals({
226
+ ...originalExternals,
227
+ qiankun: "fs"
228
+ });
229
+ }
230
+ return config;
231
+ });
232
+ };
233
+ // Annotate the CommonJS export names for ESM import in node:
234
+ 0 && (module.exports = {
235
+ isMasterEnable
236
+ });
@@ -0,0 +1,3 @@
1
+ import { IApi } from 'umi';
2
+ declare const _default: (api: IApi) => void;
3
+ export default _default;