@umijs/mfsu 4.0.7 → 4.0.10

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 (40) hide show
  1. package/compiled/is-absolute-url/LICENSE +9 -0
  2. package/compiled/is-absolute-url/index.d.ts +22 -0
  3. package/compiled/is-absolute-url/index.js +1 -0
  4. package/compiled/is-absolute-url/package.json +1 -0
  5. package/dist/babelPlugins/awaitImport/MFImport.js +59 -66
  6. package/dist/babelPlugins/awaitImport/awaitImport.d.ts +1 -1
  7. package/dist/babelPlugins/awaitImport/awaitImport.js +103 -117
  8. package/dist/babelPlugins/awaitImport/checkMatch.js +131 -119
  9. package/dist/babelPlugins/awaitImport/getAliasedPath.js +54 -35
  10. package/dist/babelPlugins/awaitImport/getRealPath.js +42 -21
  11. package/dist/babelPlugins/awaitImport/isExternals.js +55 -26
  12. package/dist/babelPlugins/awaitImport/parseSpecifiers.js +51 -52
  13. package/dist/constants.js +47 -10
  14. package/dist/dep/dep.js +112 -83
  15. package/dist/dep/getCJSExports.js +60 -53
  16. package/dist/dep/getExposeFromContent.js +71 -59
  17. package/dist/dep/getModuleExports.js +58 -32
  18. package/dist/depBuilder/depBuilder.js +191 -158
  19. package/dist/depBuilder/getESBuildEntry.js +35 -12
  20. package/dist/depInfo.js +75 -53
  21. package/dist/esbuildHandlers/autoCssModules.js +43 -22
  22. package/dist/esbuildHandlers/awaitImport/index.js +82 -70
  23. package/dist/index.js +32 -22
  24. package/dist/loader/esbuild.js +87 -35
  25. package/dist/mfsu/mfsu.d.ts +5 -1
  26. package/dist/mfsu/mfsu.js +236 -257
  27. package/dist/mfsu/strategyCompileTime.js +131 -99
  28. package/dist/mfsu/strategyStaticAnalyze.js +151 -115
  29. package/dist/moduleGraph.js +227 -186
  30. package/dist/staticDepInfo/importParser.js +28 -6
  31. package/dist/staticDepInfo/simulations/babel-plugin-import.js +99 -91
  32. package/dist/staticDepInfo/staticDepInfo.js +239 -197
  33. package/dist/types.js +33 -8
  34. package/dist/utils/makeArray.js +29 -5
  35. package/dist/utils/trimFileContent.js +29 -5
  36. package/dist/webpackPlugins/buildDepPlugin.js +49 -25
  37. package/dist/webpackPlugins/depChunkIdPrefixPlugin.js +44 -19
  38. package/dist/webpackPlugins/stripSourceMapUrlPlugin.js +46 -27
  39. package/dist/webpackPlugins/writeCachePlugin.js +39 -15
  40. package/package.json +8 -6
@@ -1,197 +1,238 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModuleGraph = void 0;
4
- const utils_1 = require("@umijs/utils");
5
- class ModuleNode {
6
- constructor(file) {
7
- this.importers = new Set();
8
- this.importedModules = new Set();
9
- this.isDependency = false;
10
- this.isRoot = false;
11
- this.version = null;
12
- this.file = file;
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
13
18
  }
14
- }
15
- class ModuleGraph {
16
- constructor() {
17
- this.fileToModules = new Map();
18
- this.depToModules = new Map();
19
- this.depSnapshotModules = {};
20
- this.rootModules = new Set();
21
- }
22
- restore(data) {
23
- let fileMap = new Map();
24
- const addNode = ({ file, importer }) => {
25
- // fix circular dependency
26
- if (fileMap.has(file))
27
- return;
28
- fileMap.set(file, true);
29
- const mod = new ModuleNode(file);
30
- let isDependency = false;
31
- let info;
32
- if (data.fileModules[file]) {
33
- info = data.fileModules[file];
34
- }
35
- else if (data.depModules[file]) {
36
- info = data.depModules[file];
37
- isDependency = true;
38
- }
39
- if (info.isRoot)
40
- mod.isRoot = true;
41
- if (importer) {
42
- mod.importers.add(importer);
43
- importer.importedModules.add(mod);
44
- }
45
- mod.isDependency = isDependency;
46
- if (info.version !== undefined) {
47
- mod.version = info.version;
48
- }
49
- if (isDependency) {
50
- this.depToModules.set(file, mod);
51
- }
52
- else {
53
- for (const importedModule of info.importedModules) {
54
- addNode({ file: importedModule, importer: mod });
55
- }
56
- this.fileToModules.set(file, mod);
57
- }
58
- };
59
- for (const root of data.roots) {
60
- addNode({ file: root });
19
+ return a;
20
+ };
21
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
+ var __export = (target, all) => {
23
+ for (var name in all)
24
+ __defProp(target, name, { get: all[name], enumerable: true });
25
+ };
26
+ var __copyProps = (to, from, except, desc) => {
27
+ if (from && typeof from === "object" || typeof from === "function") {
28
+ for (let key of __getOwnPropNames(from))
29
+ if (!__hasOwnProp.call(to, key) && key !== except)
30
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
31
+ }
32
+ return to;
33
+ };
34
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
+
36
+ // src/moduleGraph.ts
37
+ var moduleGraph_exports = {};
38
+ __export(moduleGraph_exports, {
39
+ ModuleGraph: () => ModuleGraph
40
+ });
41
+ module.exports = __toCommonJS(moduleGraph_exports);
42
+ var import_utils = require("@umijs/utils");
43
+ var ModuleNode = class {
44
+ constructor(file) {
45
+ this.importers = /* @__PURE__ */ new Set();
46
+ this.importedModules = /* @__PURE__ */ new Set();
47
+ this.isDependency = false;
48
+ this.isRoot = false;
49
+ this.version = null;
50
+ this.file = file;
51
+ }
52
+ };
53
+ var ModuleGraph = class {
54
+ constructor() {
55
+ this.fileToModules = /* @__PURE__ */ new Map();
56
+ this.depToModules = /* @__PURE__ */ new Map();
57
+ this.depSnapshotModules = {};
58
+ this.rootModules = /* @__PURE__ */ new Set();
59
+ }
60
+ restore(data) {
61
+ const getModuleNode = (file) => {
62
+ if (this.fileToModules.has(file)) {
63
+ return this.fileToModules.get(file);
64
+ }
65
+ if (this.depToModules.has(file)) {
66
+ return this.depToModules.get(file);
67
+ }
68
+ const mod = new ModuleNode(file);
69
+ return mod;
70
+ };
71
+ const addNode = ({ file, importer }) => {
72
+ const mod = getModuleNode(file);
73
+ let isDependency = false;
74
+ let info;
75
+ if (data.fileModules[file]) {
76
+ info = data.fileModules[file];
77
+ } else if (data.depModules[file]) {
78
+ info = data.depModules[file];
79
+ isDependency = true;
80
+ }
81
+ if (info.isRoot)
82
+ mod.isRoot = true;
83
+ if (importer) {
84
+ mod.importers.add(importer);
85
+ if (!importer.importedModules.has(mod)) {
86
+ importer.importedModules.add(mod);
87
+ } else {
88
+ return;
89
+ }
90
+ }
91
+ mod.isDependency = isDependency;
92
+ if (info.version !== void 0) {
93
+ mod.version = info.version;
94
+ }
95
+ if (isDependency) {
96
+ this.depToModules.set(file, mod);
97
+ } else {
98
+ this.fileToModules.set(file, mod);
99
+ for (const importedModule of info.importedModules) {
100
+ addNode({ file: importedModule, importer: mod });
61
101
  }
62
- this.depSnapshotModules = data.depSnapshotModules;
102
+ }
103
+ };
104
+ for (const root of data.roots) {
105
+ addNode({ file: root });
63
106
  }
64
- toJSON() {
65
- const roots = [];
66
- const fileModules = {};
67
- const depModules = {};
68
- this.depToModules.forEach((value, key) => {
69
- depModules[key] = {
70
- version: value.version,
71
- };
107
+ this.depSnapshotModules = data.depSnapshotModules;
108
+ }
109
+ toJSON() {
110
+ const roots = [];
111
+ const fileModules = {};
112
+ const depModules = {};
113
+ this.depToModules.forEach((value, key) => {
114
+ depModules[key] = {
115
+ version: value.version
116
+ };
117
+ });
118
+ this.fileToModules.forEach((value, key) => {
119
+ fileModules[key] = {
120
+ importedModules: Array.from(value.importedModules).map((item) => item.file)
121
+ };
122
+ if (value.isRoot) {
123
+ fileModules[key].isRoot = true;
124
+ roots.push(key);
125
+ }
126
+ });
127
+ return {
128
+ roots,
129
+ fileModules,
130
+ depModules,
131
+ depSnapshotModules: this.depSnapshotModules
132
+ };
133
+ }
134
+ snapshotDeps() {
135
+ this.depSnapshotModules = this.getDepsInfo(this.depToModules);
136
+ }
137
+ getDepsInfo(mods) {
138
+ return Array.from(mods.keys()).reduce((memo, key) => {
139
+ memo[key] = this.getDepInfo(mods.get(key));
140
+ return memo;
141
+ }, {});
142
+ }
143
+ getDepInfo(mod) {
144
+ return {
145
+ file: mod.file,
146
+ version: mod.version
147
+ };
148
+ }
149
+ hasDepChanged() {
150
+ const depModulesInfo = this.getDepsInfo(this.depToModules);
151
+ return !import_utils.lodash.isEqual(depModulesInfo, this.depSnapshotModules);
152
+ }
153
+ onFileChange(opts) {
154
+ if (this.fileToModules.has(opts.file)) {
155
+ const mod = this.fileToModules.get(opts.file);
156
+ this.updateModule({
157
+ mod,
158
+ deps: opts.deps
159
+ });
160
+ } else {
161
+ const mod = new ModuleNode(opts.file);
162
+ mod.isRoot = true;
163
+ this.fileToModules.set(opts.file, mod);
164
+ this.rootModules.add(mod);
165
+ opts.deps.forEach((dep) => {
166
+ this.addNode({
167
+ file: dep.file,
168
+ isDependency: dep.isDependency,
169
+ version: dep.version || null,
170
+ importer: mod
72
171
  });
73
- this.fileToModules.forEach((value, key) => {
74
- fileModules[key] = {
75
- importedModules: Array.from(value.importedModules).map((item) => item.file),
76
- };
77
- if (value.isRoot) {
78
- fileModules[key].isRoot = true;
79
- roots.push(key);
80
- }
81
- });
82
- return {
83
- roots,
84
- fileModules,
85
- depModules,
86
- depSnapshotModules: this.depSnapshotModules,
87
- };
88
- }
89
- snapshotDeps() {
90
- this.depSnapshotModules = this.getDepsInfo(this.depToModules);
172
+ });
91
173
  }
92
- getDepsInfo(mods) {
93
- return Array.from(mods.keys()).reduce((memo, key) => {
94
- memo[key] = this.getDepInfo(mods.get(key));
95
- return memo;
96
- }, {});
174
+ }
175
+ updateModule(opts) {
176
+ const importedModulesMap = Array.from(opts.mod.importedModules).reduce((memo, mod) => {
177
+ memo[mod.file] = mod;
178
+ return memo;
179
+ }, {});
180
+ const newDeps = [];
181
+ for (const dep of opts.deps) {
182
+ if (importedModulesMap[dep.file]) {
183
+ if (dep.version !== void 0) {
184
+ importedModulesMap[dep.file].version = dep.version;
185
+ }
186
+ delete importedModulesMap[dep.file];
187
+ } else {
188
+ newDeps.push(dep);
189
+ }
97
190
  }
98
- getDepInfo(mod) {
99
- return {
100
- file: mod.file,
101
- version: mod.version,
102
- };
191
+ Object.keys(importedModulesMap).forEach((key) => {
192
+ this.deleteNode({ mod: importedModulesMap[key], importer: opts.mod });
193
+ });
194
+ newDeps.forEach((dep) => {
195
+ this.addNode(__spreadProps(__spreadValues({}, dep), { importer: opts.mod }));
196
+ });
197
+ }
198
+ addNode(opts) {
199
+ const modules = opts.isDependency ? this.depToModules : this.fileToModules;
200
+ let mod;
201
+ if (modules.has(opts.file)) {
202
+ mod = modules.get(opts.file);
203
+ if (opts.version !== void 0)
204
+ mod.version = opts.version;
205
+ } else {
206
+ mod = new ModuleNode(opts.file);
207
+ mod.isDependency = opts.isDependency;
208
+ if (opts.version !== void 0)
209
+ mod.version = opts.version;
210
+ modules.set(opts.file, mod);
103
211
  }
104
- hasDepChanged() {
105
- const depModulesInfo = this.getDepsInfo(this.depToModules);
106
- return !utils_1.lodash.isEqual(depModulesInfo, this.depSnapshotModules);
212
+ if (!mod.importers.has(opts.importer)) {
213
+ mod.importers.add(opts.importer);
107
214
  }
108
- onFileChange(opts) {
109
- if (this.fileToModules.has(opts.file)) {
110
- const mod = this.fileToModules.get(opts.file);
111
- this.updateModule({
112
- mod,
113
- deps: opts.deps,
114
- });
115
- }
116
- else {
117
- const mod = new ModuleNode(opts.file);
118
- mod.isRoot = true;
119
- this.fileToModules.set(opts.file, mod);
120
- this.rootModules.add(mod);
121
- opts.deps.forEach((dep) => {
122
- this.addNode({
123
- file: dep.file,
124
- isDependency: dep.isDependency,
125
- version: dep.version || null,
126
- importer: mod,
127
- });
128
- });
129
- }
215
+ if (!opts.importer.importedModules.has(mod)) {
216
+ opts.importer.importedModules.add(mod);
130
217
  }
131
- updateModule(opts) {
132
- const importedModulesMap = Array.from(opts.mod.importedModules).reduce((memo, mod) => {
133
- memo[mod.file] = mod;
134
- return memo;
135
- }, {});
136
- const newDeps = [];
137
- for (const dep of opts.deps) {
138
- // update
139
- if (importedModulesMap[dep.file]) {
140
- if (dep.version !== undefined) {
141
- importedModulesMap[dep.file].version = dep.version;
142
- }
143
- delete importedModulesMap[dep.file];
144
- }
145
- // add
146
- else {
147
- newDeps.push(dep);
148
- }
149
- }
150
- Object.keys(importedModulesMap).forEach((key) => {
151
- this.deleteNode({ mod: importedModulesMap[key], importer: opts.mod });
218
+ }
219
+ deleteNode(opts) {
220
+ const modules = opts.mod.isDependency ? this.depToModules : this.fileToModules;
221
+ const { mod, importer } = opts;
222
+ mod.importers.delete(opts.importer);
223
+ importer.importedModules.delete(mod);
224
+ if (!mod.importers.size) {
225
+ modules.delete(opts.mod.file);
226
+ mod.importedModules.forEach((importedModule) => {
227
+ this.deleteNode({
228
+ mod: importedModule,
229
+ importer: mod
152
230
  });
153
- newDeps.forEach((dep) => {
154
- this.addNode({ ...dep, importer: opts.mod });
155
- });
156
- }
157
- addNode(opts) {
158
- const modules = opts.isDependency ? this.depToModules : this.fileToModules;
159
- let mod;
160
- if (modules.has(opts.file)) {
161
- mod = modules.get(opts.file);
162
- if (opts.version !== undefined)
163
- mod.version = opts.version;
164
- }
165
- else {
166
- mod = new ModuleNode(opts.file);
167
- mod.isDependency = opts.isDependency;
168
- if (opts.version !== undefined)
169
- mod.version = opts.version;
170
- modules.set(opts.file, mod);
171
- }
172
- if (!mod.importers.has(opts.importer)) {
173
- mod.importers.add(opts.importer);
174
- }
175
- if (!opts.importer.importedModules.has(mod)) {
176
- opts.importer.importedModules.add(mod);
177
- }
178
- }
179
- deleteNode(opts) {
180
- const modules = opts.mod.isDependency
181
- ? this.depToModules
182
- : this.fileToModules;
183
- const { mod, importer } = opts;
184
- mod.importers.delete(opts.importer);
185
- importer.importedModules.delete(mod);
186
- if (!mod.importers.size) {
187
- modules.delete(opts.mod.file);
188
- mod.importedModules.forEach((importedModule) => {
189
- this.deleteNode({
190
- mod: importedModule,
191
- importer: mod,
192
- });
193
- });
194
- }
231
+ });
195
232
  }
196
- }
197
- exports.ModuleGraph = ModuleGraph;
233
+ }
234
+ };
235
+ // Annotate the CommonJS export names for ESM import in node:
236
+ 0 && (module.exports = {
237
+ ModuleGraph
238
+ });
@@ -1,8 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // @ts-ignore
4
- const _importParser_js_1 = require("../../vendors/importParser/_importParser.js");
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/staticDepInfo/importParser.ts
20
+ var importParser_exports = {};
21
+ __export(importParser_exports, {
22
+ default: () => parse
23
+ });
24
+ module.exports = __toCommonJS(importParser_exports);
25
+ var import_importParser = require("../../vendors/importParser/_importParser.js");
5
26
  function parse(code) {
6
- return (0, _importParser_js_1.parse)(code);
27
+ return (0, import_importParser.parse)(code);
7
28
  }
8
- exports.default = parse;
29
+ // Annotate the CommonJS export names for ESM import in node:
30
+ 0 && (module.exports = {});
@@ -1,99 +1,107 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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 });
4
10
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const utils_1 = require("@umijs/utils");
7
- const path_1 = require("path");
8
- const getAliasedPath_1 = require("../../babelPlugins/awaitImport/getAliasedPath");
9
- const importParser_1 = __importDefault(require("../importParser"));
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(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // src/staticDepInfo/simulations/babel-plugin-import.ts
23
+ var babel_plugin_import_exports = {};
24
+ __export(babel_plugin_import_exports, {
25
+ default: () => createHandle
26
+ });
27
+ module.exports = __toCommonJS(babel_plugin_import_exports);
28
+ var import_utils = require("@umijs/utils");
29
+ var import_path = require("path");
30
+ var import_getAliasedPath = require("../../babelPlugins/awaitImport/getAliasedPath");
31
+ var import_importParser = __toESM(require("../importParser"));
10
32
  function createHandle(importOptions) {
11
- var _a;
12
- const { libraryName, libraryDirectory } = importOptions;
13
- const useUnderline = importOptions.camel2UnderlineComponentName;
14
- const useDash = (_a = importOptions.camel2DashComponentName) !== null && _a !== void 0 ? _a : true;
15
- const transformName = useUnderline
16
- ? (n) => transCamel(n, '_')
17
- : useDash
18
- ? (n) => transCamel(n, '-')
19
- : (n) => n;
20
- /*
21
- todo support other config values
22
- [x] boolean true
23
- [x] string css
24
- [ ] function
25
- */
26
- const stylePathFromCompPath = importOptions.style === 'css'
27
- ? (compFsPath) => (0, utils_1.winPath)((0, path_1.join)(compFsPath, 'style/css'))
28
- : (compFsPath) => (0, utils_1.winPath)((0, path_1.join)(compFsPath, 'style'));
29
- return function handleImports(opts) {
30
- const { imports, rawCode } = opts;
31
- if ((imports === null || imports === void 0 ? void 0 : imports.length) > 0) {
32
- const version = opts.pathToVersion(libraryName);
33
- function addToMatches(moduleFsPath) {
34
- const unAliasedModulePath = (0, getAliasedPath_1.getAliasedPathWithLoopDetect)({
35
- value: (0, utils_1.winPath)(moduleFsPath),
36
- alias: opts.alias,
37
- });
38
- retMatched.push({
39
- isMatch: true,
40
- value: unAliasedModulePath,
41
- replaceValue: `${mfName}/${unAliasedModulePath}`,
42
- version,
43
- });
44
- const unAliasedStylePath = (0, getAliasedPath_1.getAliasedPathWithLoopDetect)({
45
- value: stylePathFromCompPath(moduleFsPath),
46
- alias: opts.alias,
47
- });
48
- retMatched.push({
49
- isMatch: true,
50
- value: unAliasedStylePath,
51
- replaceValue: `${mfName}/${unAliasedStylePath}`,
52
- version,
53
- });
54
- }
55
- const importSnippets = imports
56
- .map(({ ss, se }) => {
57
- return rawCode.slice(ss, se + 1);
58
- })
59
- .join('\n');
60
- const retMatched = [];
61
- const parsedImports = (0, importParser_1.default)(importSnippets);
62
- const importedVariable = new Set();
63
- for (const i of parsedImports) {
64
- i.imports.forEach((v) => {
65
- if (v === '*') {
66
- errorLogForSpaceImport(libraryName);
67
- }
68
- importedVariable.add(v);
69
- });
70
- }
71
- const mfName = opts.mfName;
72
- for (const v of importedVariable.entries()) {
73
- const importVariableName = v[0];
74
- if (importVariableName === 'default') {
75
- addToMatches((0, path_1.join)(libraryName, libraryDirectory));
76
- continue;
77
- }
78
- const transformedName = transformName(importVariableName);
79
- const importFsPath = (0, path_1.join)(libraryName, libraryDirectory, transformedName);
80
- addToMatches(importFsPath);
81
- }
82
- return retMatched;
33
+ const { libraryName, libraryDirectory } = importOptions;
34
+ const useUnderline = importOptions.camel2UnderlineComponentName;
35
+ const useDash = importOptions.camel2DashComponentName ?? true;
36
+ const transformName = useUnderline ? (n) => transCamel(n, "_") : useDash ? (n) => transCamel(n, "-") : (n) => n;
37
+ const stylePathFromCompPath = importOptions.style === "css" ? (compFsPath) => (0, import_utils.winPath)((0, import_path.join)(compFsPath, "style/css")) : (compFsPath) => (0, import_utils.winPath)((0, import_path.join)(compFsPath, "style"));
38
+ return function handleImports(opts) {
39
+ const { imports, rawCode } = opts;
40
+ if ((imports == null ? void 0 : imports.length) > 0) {
41
+ let addToMatches = function(moduleFsPath) {
42
+ const unAliasedModulePath = (0, import_getAliasedPath.getAliasedPathWithLoopDetect)({
43
+ value: (0, import_utils.winPath)(moduleFsPath),
44
+ alias: opts.alias
45
+ });
46
+ retMatched.push({
47
+ isMatch: true,
48
+ value: unAliasedModulePath,
49
+ replaceValue: `${mfName}/${unAliasedModulePath}`,
50
+ version
51
+ });
52
+ const unAliasedStylePath = (0, import_getAliasedPath.getAliasedPathWithLoopDetect)({
53
+ value: stylePathFromCompPath(moduleFsPath),
54
+ alias: opts.alias
55
+ });
56
+ retMatched.push({
57
+ isMatch: true,
58
+ value: unAliasedStylePath,
59
+ replaceValue: `${mfName}/${unAliasedStylePath}`,
60
+ version
61
+ });
62
+ };
63
+ const version = opts.pathToVersion(libraryName);
64
+ const importSnippets = imports.map(({ ss, se }) => {
65
+ return rawCode.slice(ss, se + 1);
66
+ }).join("\n");
67
+ const retMatched = [];
68
+ const parsedImports = (0, import_importParser.default)(importSnippets);
69
+ const importedVariable = /* @__PURE__ */ new Set();
70
+ for (const i of parsedImports) {
71
+ i.imports.forEach((v) => {
72
+ if (v === "*") {
73
+ errorLogForSpaceImport(libraryName);
74
+ }
75
+ importedVariable.add(v);
76
+ });
77
+ }
78
+ const mfName = opts.mfName;
79
+ for (const v of importedVariable.entries()) {
80
+ const importVariableName = v[0];
81
+ if (importVariableName === "default") {
82
+ addToMatches((0, import_path.join)(libraryName, libraryDirectory));
83
+ continue;
83
84
  }
84
- return [];
85
- };
85
+ const transformedName = transformName(importVariableName);
86
+ const importFsPath = (0, import_path.join)(libraryName, libraryDirectory, transformedName);
87
+ addToMatches(importFsPath);
88
+ }
89
+ return retMatched;
90
+ }
91
+ return [];
92
+ };
86
93
  }
87
- exports.default = createHandle;
88
94
  function transCamel(_str, symbol) {
89
- const str = _str[0].toLowerCase() + _str.substr(1);
90
- return str.replace(/([A-Z])/g, ($1) => `${symbol}${$1.toLowerCase()}`);
95
+ const str = _str[0].toLowerCase() + _str.substr(1);
96
+ return str.replace(/([A-Z])/g, ($1) => `${symbol}${$1.toLowerCase()}`);
91
97
  }
92
98
  function errorLogForSpaceImport(libraryName) {
93
- utils_1.logger.error(`"import * as ant from 'antd'" or "export * from '${libraryName}'" are not allowed in mfsu#version=v4`);
94
- utils_1.logger.error(`solutions:`);
95
- utils_1.logger.error(` change to "import { Xxx } from '${libraryName}'" or`);
96
- utils_1.logger.error(` "export { Xxx } from '${libraryName}'" syntax`);
97
- utils_1.logger.error(` or use mfsu#version=v3 configuration`);
98
- throw Error(`"import * as ant from 'antd'" not allowed in mfsu#version=4`);
99
+ import_utils.logger.error(`"import * as ant from 'antd'" or "export * from '${libraryName}'" are not allowed in mfsu#strategy='eager'`);
100
+ import_utils.logger.error(`solutions:`);
101
+ import_utils.logger.error(` change to "import { Xxx } from '${libraryName}'" or`);
102
+ import_utils.logger.error(` "export { Xxx } from '${libraryName}'" syntax`);
103
+ import_utils.logger.error(` or use mfsu#strategy='normal' configuration`);
104
+ throw Error(`"import * as ant from 'antd'" not allowed in mfsu#version=4`);
99
105
  }
106
+ // Annotate the CommonJS export names for ESM import in node:
107
+ 0 && (module.exports = {});