@module-federation/managers 2.0.0 → 2.1.0

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 (41) hide show
  1. package/dist/BasicPluginOptionsManager.d.ts +10 -0
  2. package/dist/BasicPluginOptionsManager.js +70 -0
  3. package/dist/BasicPluginOptionsManager.mjs +24 -0
  4. package/dist/ContainerManager.d.ts +20 -0
  5. package/dist/ContainerManager.js +228 -0
  6. package/dist/ContainerManager.mjs +168 -0
  7. package/dist/PKGJsonManager.d.ts +6 -0
  8. package/dist/PKGJsonManager.js +113 -0
  9. package/dist/PKGJsonManager.mjs +51 -0
  10. package/dist/RemoteManager.d.ts +18 -0
  11. package/dist/RemoteManager.js +160 -0
  12. package/dist/RemoteManager.mjs +112 -0
  13. package/dist/SharedManager.d.ts +19 -0
  14. package/dist/SharedManager.js +196 -0
  15. package/dist/SharedManager.mjs +136 -0
  16. package/dist/constant.d.ts +2 -0
  17. package/dist/constant.js +54 -0
  18. package/dist/constant.mjs +6 -0
  19. package/dist/index.d.ts +8 -1
  20. package/dist/index.js +93 -0
  21. package/dist/index.mjs +36 -0
  22. package/dist/types.d.ts +16 -0
  23. package/dist/types.js +31 -0
  24. package/dist/types.mjs +4 -0
  25. package/dist/utils.d.ts +4 -0
  26. package/dist/utils.js +119 -0
  27. package/dist/utils.mjs +66 -0
  28. package/package.json +14 -8
  29. package/dist/index.cjs.js +0 -499
  30. package/dist/index.cjs.js.map +0 -1
  31. package/dist/index.esm.js +0 -490
  32. package/dist/index.esm.js.map +0 -1
  33. /package/dist/{src/BasicPluginOptionsManager.d.ts → BasicPluginOptionsManager.d.mts} +0 -0
  34. /package/dist/{src/ContainerManager.d.ts → ContainerManager.d.mts} +0 -0
  35. /package/dist/{src/PKGJsonManager.d.ts → PKGJsonManager.d.mts} +0 -0
  36. /package/dist/{src/RemoteManager.d.ts → RemoteManager.d.mts} +0 -0
  37. /package/dist/{src/SharedManager.d.ts → SharedManager.d.mts} +0 -0
  38. /package/dist/{src/constant.d.ts → constant.d.mts} +0 -0
  39. /package/dist/{src/index.d.ts → index.d.mts} +0 -0
  40. /package/dist/{src/types.d.ts → types.d.mts} +0 -0
  41. /package/dist/{src/utils.d.ts → utils.d.mts} +0 -0
package/dist/index.esm.js DELETED
@@ -1,490 +0,0 @@
1
- import path from 'path';
2
- import { logger, MFModuleType, generateExposeFilename, composeKeyWithSeparator, parseEntry, isRequiredVersion } from '@module-federation/sdk';
3
- import finder from 'find-pkg';
4
- import fs from 'fs';
5
- import fs$1 from 'fs-extra';
6
-
7
- class BasicPluginOptionsManager {
8
- constructor(root = process.cwd()) {
9
- this._root = root;
10
- }
11
- get enable() {
12
- return Boolean(this._options);
13
- }
14
- get options() {
15
- return this._options;
16
- }
17
- get root() {
18
- return this._root;
19
- }
20
- init(options, extraArgs) {
21
- this._options = options;
22
- }
23
- setOptions(options) {
24
- this._options = options;
25
- }
26
- }
27
-
28
- class PKGJsonManager {
29
- setPKGJson(pkg) {
30
- this._pkg = pkg;
31
- }
32
- readPKGJson(root = process.cwd()) {
33
- if (this._pkg) {
34
- return this._pkg;
35
- }
36
- try {
37
- // eslint-disable-next-line no-restricted-globals
38
- const pkg = JSON.parse(fs.readFileSync(path.resolve(root, 'package.json'), 'utf8'));
39
- this._pkg = pkg;
40
- return pkg;
41
- }
42
- catch (_err) {
43
- try {
44
- const pkg = finder.sync(root);
45
- this._pkg = pkg;
46
- return pkg;
47
- }
48
- catch (err) {
49
- logger.error(err);
50
- return {};
51
- }
52
- }
53
- }
54
- getExposeGarfishModuleType(root = process.cwd()) {
55
- const pkg = this.readPKGJson(root);
56
- return pkg?.['mf']?.type === MFModuleType.NPM
57
- ? MFModuleType.NPM
58
- : MFModuleType.APP;
59
- }
60
- }
61
-
62
- const LOCAL_BUILD_VERSION = 'local';
63
- const UNKNOWN_MODULE_NAME = 'UNKNOWN';
64
-
65
- function processFn(options, normalizeSimple, normalizeOptions, fn) {
66
- const object = (obj) => {
67
- for (const [key, value] of Object.entries(obj)) {
68
- if (typeof value === 'string') {
69
- fn(key, normalizeSimple(value, key));
70
- }
71
- else {
72
- fn(key, normalizeOptions(value, key));
73
- }
74
- }
75
- };
76
- const array = (items) => {
77
- for (const item of items) {
78
- if (typeof item === 'string') {
79
- fn(item, normalizeSimple(item, item));
80
- }
81
- else if (item && typeof item === 'object') {
82
- object(item);
83
- }
84
- else {
85
- throw new Error('Unexpected options format');
86
- }
87
- }
88
- };
89
- if (!options) {
90
- return;
91
- }
92
- else if (Array.isArray(options)) {
93
- array(options);
94
- }
95
- else if (typeof options === 'object') {
96
- object(options);
97
- }
98
- else {
99
- throw new Error('Unexpected options format');
100
- }
101
- }
102
- function parseOptions(options, normalizeSimple, normalizeOptions) {
103
- const items = [];
104
- processFn(options, normalizeSimple, normalizeOptions, (key, value) => {
105
- items.push([key, value]);
106
- });
107
- return items;
108
- }
109
- function getBuildVersion(root) {
110
- if (process.env['MF_BUILD_VERSION']) {
111
- return process.env['MF_BUILD_VERSION'];
112
- }
113
- const pkg = new PKGJsonManager().readPKGJson(root);
114
- if (pkg?.['version'] && typeof pkg['version'] === 'string') {
115
- return pkg['version'];
116
- }
117
- return LOCAL_BUILD_VERSION;
118
- }
119
- function getBuildName() {
120
- return process.env['MF_BUILD_NAME'];
121
- }
122
-
123
- var utils = /*#__PURE__*/Object.freeze({
124
- __proto__: null,
125
- getBuildName: getBuildName,
126
- getBuildVersion: getBuildVersion,
127
- parseOptions: parseOptions
128
- });
129
-
130
- function normalizeExposeModuleName(exposeKey) {
131
- const relativePath = path.relative('.', exposeKey);
132
- if (!relativePath) {
133
- return 'ExposeEntry';
134
- }
135
- return relativePath;
136
- }
137
- class ContainerManager extends BasicPluginOptionsManager {
138
- get enable() {
139
- return Boolean(this.options.name &&
140
- this.options.exposes &&
141
- (Array.isArray(this.options.exposes)
142
- ? this.options.exposes.length > 0
143
- : Object.keys(this.options.exposes).length > 0));
144
- }
145
- get globalEntryName() {
146
- const { name, library } = this.options;
147
- if (library) {
148
- if (typeof library.name === 'string') {
149
- return library.name;
150
- }
151
- return name;
152
- }
153
- return name;
154
- }
155
- get containerPluginExposesOptions() {
156
- const { exposes } = this.options;
157
- const parsedOptions = parseOptions(exposes, (item, key) => ({
158
- import: Array.isArray(item) ? item : [item],
159
- name: generateExposeFilename(key, false),
160
- }), (item, key) => ({
161
- import: Array.isArray(item.import) ? item.import : [item.import],
162
- name: item.name || generateExposeFilename(key, false),
163
- }));
164
- return parsedOptions.reduce((sum, item) => {
165
- const [exposeKey, exposeObj] = item;
166
- sum[exposeKey] = exposeObj;
167
- return sum;
168
- }, {});
169
- }
170
- // { '.' : './src/Button.jsx', './backup': './src/Button.jsx' } => { './src/Button' : ['.','./backup'] }
171
- get fileExposeKeyMap() {
172
- const parsedOptions = this._parseOptions();
173
- return parsedOptions.reduce((sum, item) => {
174
- const [exposeKey, exposeObject] = item;
175
- exposeObject.import.forEach((exposeFile) => {
176
- const exposeFileWithoutExt = exposeFile.replace(path.extname(exposeFile), '');
177
- sum[exposeFileWithoutExt] ||= new Set();
178
- sum[exposeFileWithoutExt].add(exposeKey);
179
- });
180
- return sum;
181
- }, {});
182
- }
183
- // { '.' : './src/Button.jsx' } => { '__federation_expose_Component' : ['src/Buttton'] }
184
- get exposeFileNameImportMap() {
185
- const { exposes } = this.options;
186
- const parsedOptions = parseOptions(exposes, (item, key) => ({
187
- import: Array.isArray(item) ? item : [item],
188
- name: generateExposeFilename(key, false),
189
- }), (item, key) => ({
190
- import: Array.isArray(item.import) ? item.import : [item.import],
191
- name: item.name || generateExposeFilename(key, false),
192
- }));
193
- return parsedOptions.reduce((sum, item) => {
194
- const [_exposeKey, exposeObj] = item;
195
- const { name, import: importPath } = exposeObj;
196
- sum[name] = importPath;
197
- return sum;
198
- }, {});
199
- }
200
- // { '.' : './src/Button.jsx' } => { '.' : ['src/Button'] }
201
- get exposeObject() {
202
- const parsedOptions = this._parseOptions();
203
- return parsedOptions.reduce((sum, item) => {
204
- const [exposeKey, exposeObject] = item;
205
- sum[exposeKey] = [];
206
- exposeObject.import.forEach((item) => {
207
- const relativePath = path.relative('.', item.replace(path.extname(item), ''));
208
- sum[exposeKey].push(relativePath);
209
- });
210
- return sum;
211
- }, {});
212
- }
213
- // { '.' : './src/Button.jsx' } => ['./src/Button.jsx']
214
- get exposeFiles() {
215
- const parsedOptions = this._parseOptions();
216
- return parsedOptions.reduce((sum, item) => {
217
- const [_exposeKey, exposeObject] = item;
218
- sum.push(...exposeObject.import);
219
- return sum;
220
- }, []);
221
- }
222
- get manifestModuleInfos() {
223
- if (this._manifestModuleInfos) {
224
- return this._manifestModuleInfos;
225
- }
226
- // { '.' : './src/Button.jsx' } => { '.' : { name: 'ExposeEntry', file: './src/Button.jsx', requires: {} } }
227
- const parsedOptions = this._parseOptions();
228
- this._manifestModuleInfos = parsedOptions.reduce((sum, item) => {
229
- const [exposeKey, exposeObject] = item;
230
- sum[exposeKey] = {
231
- name: exposeObject.name || normalizeExposeModuleName(exposeKey),
232
- file: exposeObject.import,
233
- };
234
- return sum;
235
- }, {});
236
- return this._manifestModuleInfos;
237
- }
238
- // { '.' : './src/Button.jsx' } => { index: ['./src/Button.jsx'] }
239
- get webpackEntry() {
240
- return Object.values(this.manifestModuleInfos).reduce((sum, cur) => {
241
- const entry = cur.name === 'ExposeEntry'
242
- ? 'index'
243
- : cur.name.slice(0, 1).toLowerCase() + cur.name.slice(1);
244
- sum[entry] = cur.file;
245
- return sum;
246
- }, {});
247
- }
248
- _parseOptions() {
249
- if (this._parsedOptions) {
250
- return this._parsedOptions;
251
- }
252
- this._parsedOptions = parseOptions(this.options.exposes, (item) => ({
253
- import: Array.isArray(item) ? item : [item],
254
- name: undefined,
255
- }), (item) => ({
256
- import: Array.isArray(item.import) ? item.import : [item.import],
257
- name: undefined,
258
- }));
259
- return this._parsedOptions;
260
- }
261
- init(options) {
262
- this.setOptions(options);
263
- this.validate(options.name);
264
- }
265
- validate(name) {
266
- if (!name) {
267
- throw new Error(`container name can not be empty!`);
268
- }
269
- }
270
- }
271
-
272
- function getEntry(remoteObj) {
273
- if (typeof remoteObj === 'string') {
274
- return remoteObj;
275
- }
276
- if (typeof remoteObj.external === 'string') {
277
- return remoteObj.external;
278
- }
279
- throw new Error('Not support "array" remote value yet!');
280
- }
281
- class RemoteManager extends BasicPluginOptionsManager {
282
- constructor() {
283
- super(...arguments);
284
- this.normalizedOptions = {};
285
- }
286
- get enable() {
287
- return Boolean(this.remotes &&
288
- (Array.isArray(this.remotes)
289
- ? this.remotes.length > 0
290
- : Object.keys(this.remotes).length > 0));
291
- }
292
- get statsRemoteWithEmptyUsedIn() {
293
- const { name } = this.options;
294
- return Object.keys(this.normalizedOptions).reduce((sum, cur) => {
295
- const normalizedOption = this.normalizedOptions[cur];
296
- let curObj;
297
- if ('entry' in normalizedOption) {
298
- curObj = {
299
- entry: normalizedOption.entry,
300
- alias: normalizedOption.alias,
301
- moduleName: UNKNOWN_MODULE_NAME,
302
- federationContainerName: normalizedOption.name,
303
- consumingFederationContainerName: name,
304
- usedIn: [UNKNOWN_MODULE_NAME],
305
- };
306
- }
307
- else {
308
- curObj = {
309
- alias: normalizedOption.alias,
310
- moduleName: UNKNOWN_MODULE_NAME,
311
- version: normalizedOption.version,
312
- federationContainerName: normalizedOption.name,
313
- consumingFederationContainerName: name,
314
- usedIn: [UNKNOWN_MODULE_NAME],
315
- };
316
- }
317
- sum.push(curObj);
318
- return sum;
319
- }, []);
320
- }
321
- // 'micro-app-sub3': 'app:@garfish/micro-app-sub3:0.0.4',
322
- // ↓↓↓
323
- // {
324
- // 'micro-app-sub3': @garfish/micro-app-sub3:0.0.4
325
- // }
326
- get dtsRemotes() {
327
- return Object.keys(this.normalizedOptions).reduce((sum, remoteAlias) => {
328
- const remoteInfo = this.normalizedOptions[remoteAlias];
329
- sum[remoteAlias] = composeKeyWithSeparator(remoteInfo.name, 'entry' in remoteInfo ? remoteInfo.entry : remoteInfo.version);
330
- return sum;
331
- }, {});
332
- }
333
- get remotes() {
334
- return this.options.remotes;
335
- }
336
- // INFO: only support remoteType: script now
337
- normalizeOptions(options = {}) {
338
- this.normalizedOptions = Object.keys(options).reduce((sum, remoteAlias) => {
339
- if (Array.isArray(options)) {
340
- return sum;
341
- }
342
- const remoteInfo = options[remoteAlias];
343
- if (Array.isArray(remoteInfo)) {
344
- return sum;
345
- }
346
- let parsedOptions;
347
- try {
348
- parsedOptions = parseEntry(typeof remoteInfo === 'string' ? remoteInfo : getEntry(remoteInfo), '', '@');
349
- }
350
- catch (e) {
351
- // noop
352
- }
353
- if (!parsedOptions) {
354
- return sum;
355
- }
356
- sum[remoteAlias] = {
357
- ...parsedOptions,
358
- alias: remoteAlias,
359
- shareScope: typeof remoteInfo === 'object'
360
- ? remoteInfo.shareScope || 'default'
361
- : 'default',
362
- };
363
- return sum;
364
- }, {});
365
- }
366
- init(options) {
367
- this.setOptions(options);
368
- this.normalizeOptions(options.remotes);
369
- }
370
- }
371
-
372
- // @ts-ignore this pkg miss types
373
- class SharedManager extends BasicPluginOptionsManager {
374
- constructor() {
375
- super(...arguments);
376
- this.normalizedOptions = {};
377
- }
378
- get enable() {
379
- return Boolean(Object.keys(this.sharedPluginOptions.shared).length);
380
- }
381
- get sharedPluginOptions() {
382
- const normalizedShared = this.normalizedOptions;
383
- const shared = Object.keys(normalizedShared).reduce((sum, cur) => {
384
- const { singleton, requiredVersion, version, eager, shareScope, import: sharedImport, treeShaking, } = normalizedShared[cur];
385
- sum[cur] = {
386
- singleton,
387
- requiredVersion,
388
- version,
389
- eager,
390
- shareScope,
391
- import: sharedImport,
392
- treeShaking,
393
- };
394
- return sum;
395
- }, {});
396
- return {
397
- shared,
398
- shareScope: this.options.shareScope || 'default',
399
- };
400
- }
401
- findPkg(name, shareConfig) {
402
- try {
403
- let pkgPath = '';
404
- let depName = name;
405
- if (shareConfig.import) {
406
- if (path.isAbsolute(shareConfig.import)) {
407
- pkgPath = shareConfig.import;
408
- }
409
- else if (shareConfig.import.startsWith('.')) {
410
- pkgPath = path.resolve(this.root, shareConfig.import);
411
- }
412
- }
413
- else {
414
- if (shareConfig.packageName) {
415
- depName = shareConfig.packageName;
416
- }
417
- }
418
- pkgPath = pkgPath || require.resolve(depName, { paths: [this.root] });
419
- const pkgJsonPath = finder.sync(pkgPath);
420
- return {
421
- pkg: JSON.parse(fs$1.readFileSync(pkgJsonPath, 'utf-8')),
422
- path: '',
423
- pkgPath: '',
424
- };
425
- }
426
- catch (err) {
427
- return {
428
- pkg: {},
429
- path: '',
430
- pkgPath: '',
431
- };
432
- }
433
- }
434
- get enableTreeShaking() {
435
- return Object.values(this.normalizedOptions).some((item) => item.treeShaking);
436
- }
437
- transformSharedConfig(sharedConfig) {
438
- const defaultSharedConfig = {
439
- singleton: true,
440
- requiredVersion: undefined,
441
- shareScope: 'default',
442
- };
443
- return {
444
- ...defaultSharedConfig,
445
- ...sharedConfig,
446
- };
447
- }
448
- normalizeOptions(options) {
449
- const normalizedShared = {};
450
- const sharedOptions = parseOptions(options, (item, key) => {
451
- if (typeof item !== 'string')
452
- throw new Error('Unexpected array in shared');
453
- const config = item === key || !isRequiredVersion(item)
454
- ? {
455
- import: item,
456
- }
457
- : {
458
- import: key,
459
- requiredVersion: item,
460
- };
461
- return config;
462
- }, (item) => item);
463
- sharedOptions.forEach((item) => {
464
- const [sharedName, sharedOptions] = item;
465
- const pkgInfo = this.findPkg(sharedName, sharedOptions);
466
- const sharedConfig = this.transformSharedConfig(sharedOptions);
467
- normalizedShared[sharedName] = {
468
- ...sharedConfig,
469
- requiredVersion: typeof sharedConfig.requiredVersion !== 'undefined'
470
- ? sharedConfig.requiredVersion
471
- : `^${pkgInfo.pkg['version']}`,
472
- name: sharedName,
473
- version: pkgInfo.pkg['version'],
474
- eager: Boolean(sharedConfig.eager),
475
- };
476
- });
477
- this.normalizedOptions = normalizedShared;
478
- }
479
- init(options) {
480
- this.setOptions(options);
481
- this.normalizeOptions(options.shared);
482
- }
483
- }
484
-
485
- var types = /*#__PURE__*/Object.freeze({
486
- __proto__: null
487
- });
488
-
489
- export { BasicPluginOptionsManager, ContainerManager, PKGJsonManager, RemoteManager, SharedManager, UNKNOWN_MODULE_NAME, types, utils };
490
- //# sourceMappingURL=index.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../src/BasicPluginOptionsManager.ts","../../src/PKGJsonManager.ts","../../src/constant.ts","../../src/utils.ts","../../src/ContainerManager.ts","../../src/RemoteManager.ts","../../src/SharedManager.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["findPkg","fs"],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes