@module-federation/runtime 0.0.0-feat-node-support-1702930274548 → 0.0.0-feat-node-support-1703050615268

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/index.cjs.js CHANGED
@@ -869,13 +869,14 @@ function _ts_generator(thisArg1, body1) {
869
869
  }
870
870
  function importNodeModule(name11) {
871
871
  if (!name11) {
872
- throw new Error("import specifier is require");
873
- }
874
- return new Promise(function(resolve11, reject11) {
875
- new Function("callbacks", 'import("'.concat(name11, '").then((res)=>{callbacks.resolve(res);}, (error)=> callbacks.reject(error))'))({
876
- resolve: resolve11,
877
- reject: reject11
878
- });
872
+ throw new Error("import specifier is required");
873
+ }
874
+ var importModule11 = new Function("name", "return import(name)");
875
+ return importModule11(name11).then(function(res11) {
876
+ return res11.default;
877
+ }).catch(function(error11) {
878
+ console.error("Error importing module ".concat(name11, ":"), error11);
879
+ throw error11;
879
880
  });
880
881
  }
881
882
  function createScriptNode(url, cb, attrs, createScriptHook) {
@@ -1000,8 +1001,6 @@ function loadScriptNode(url11, info11) {
1000
1001
  reject11(error11);
1001
1002
  } else {
1002
1003
  var _info_attrs2, _info_attrs11;
1003
- // Handle the loaded script context as needed
1004
- console.log("Script loaded successfully:", scriptContext11);
1005
1004
  var remoteEntryKey11 = (info11 === null || info11 === void 0 ? void 0 : (_info_attrs2 = info11.attrs) === null || _info_attrs2 === void 0 ? void 0 : _info_attrs2["globalName"]) || "__FEDERATION_".concat(info11 === null || info11 === void 0 ? void 0 : (_info_attrs11 = info11.attrs) === null || _info_attrs11 === void 0 ? void 0 : _info_attrs11["name"], ":custom__");
1006
1005
  var entryExports11 = globalThis[remoteEntryKey11] = scriptContext11;
1007
1006
  resolve11(entryExports11);
@@ -1153,15 +1152,11 @@ let Module = class Module {
1153
1152
  const { loadFactory = true } = options || {
1154
1153
  loadFactory: true
1155
1154
  };
1156
- const hostName = this.hostInfo.name;
1155
+ this.hostInfo.name;
1157
1156
  // Get remoteEntry.js
1158
1157
  const remoteEntryExports = await this.getEntry();
1159
1158
  if (!this.inited) {
1160
- const globalShareScopeMap = share.Global.__FEDERATION__.__SHARE__;
1161
- if (!globalShareScopeMap[hostName]) {
1162
- globalShareScopeMap[hostName] = {};
1163
- }
1164
- const localShareScopeMap = globalShareScopeMap[hostName];
1159
+ const localShareScopeMap = this.shareScopeMap;
1165
1160
  const remoteShareScope = this.remoteInfo.shareScope || 'default';
1166
1161
  if (!localShareScopeMap[remoteShareScope]) {
1167
1162
  localShareScopeMap[remoteShareScope] = {};
@@ -1183,9 +1178,9 @@ let Module = class Module {
1183
1178
  remotes: [],
1184
1179
  name: this.remoteInfo.name
1185
1180
  }));
1186
- if (!__FEDERATION__.__SHARE__['default'] && __FEDERATION__.__SHARE__[hostName] && __FEDERATION__.__SHARE__[hostName]['default']) {
1181
+ if (!__FEDERATION__.__SHARE__['default'] && this.shareScopeMap && this.shareScopeMap['default']) {
1187
1182
  // @ts-ignore compat prev logic , and it will be optimized by supporting startup hook
1188
- __FEDERATION__.__SHARE__['default'] = __FEDERATION__.__SHARE__[hostName]['default'];
1183
+ __FEDERATION__.__SHARE__['default'] = this.shareScopeMap['default'];
1189
1184
  }
1190
1185
  }
1191
1186
  }
@@ -1202,7 +1197,7 @@ let Module = class Module {
1202
1197
  return exposeContent;
1203
1198
  }
1204
1199
  // loading: Record<string, undefined | Promise<RemoteEntryExports | void>> = {};
1205
- constructor({ hostInfo, remoteInfo, shared, loaderHook }){
1200
+ constructor({ hostInfo, remoteInfo, shared, loaderHook, shareScopeMap }){
1206
1201
  this.inited = false;
1207
1202
  this.shared = {};
1208
1203
  this.lib = undefined;
@@ -1210,6 +1205,7 @@ let Module = class Module {
1210
1205
  this.remoteInfo = remoteInfo;
1211
1206
  this.shared = shared;
1212
1207
  this.loaderHook = loaderHook;
1208
+ this.shareScopeMap = shareScopeMap;
1213
1209
  }
1214
1210
  };
1215
1211
 
@@ -1740,7 +1736,7 @@ function generatePreloadAssets(origin, preloadOptions, remote, globalSnapshot, r
1740
1736
  if (!shareInfo) {
1741
1737
  return;
1742
1738
  }
1743
- const registeredShared = share.getRegisteredShare(origin.name, shared.sharedName, shareInfo, origin.hooks.lifecycle.resolveShare);
1739
+ const registeredShared = share.getRegisteredShare(origin.shareScopeMap, shared.sharedName, shareInfo, origin.hooks.lifecycle.resolveShare);
1744
1740
  // If the global share does not exist, or the lib function does not exist, it means that the shared has not been loaded yet and can be preloaded.
1745
1741
  if (registeredShared && typeof registeredShared.lib === 'function') {
1746
1742
  shared.assets.js.sync.forEach((asset)=>{
@@ -2067,8 +2063,9 @@ function _object_without_properties_loose(source, excluded) {
2067
2063
  class FederationHost {
2068
2064
  _setGlobalShareScopeMap() {
2069
2065
  const globalShareScopeMap = share.getGlobalShareScope();
2070
- if (this.options.name && !globalShareScopeMap[this.options.name]) {
2071
- globalShareScopeMap[this.options.name] = this.shareScopeMap;
2066
+ const identifier = this.options.id || this.options.name;
2067
+ if (identifier && !globalShareScopeMap[identifier]) {
2068
+ globalShareScopeMap[identifier] = this.shareScopeMap;
2072
2069
  }
2073
2070
  }
2074
2071
  initOptions(userOptions) {
@@ -2100,7 +2097,7 @@ class FederationHost {
2100
2097
  // Assert that shareInfoRes exists, if not, throw an error
2101
2098
  share.assert(shareInfoRes, `Cannot find ${pkgName} Share in the ${this.options.name}. Please ensure that the ${pkgName} Share parameters have been injected`);
2102
2099
  // Retrieve from cache
2103
- const registeredShared = share.getRegisteredShare(this.options.name, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2100
+ const registeredShared = share.getRegisteredShare(this.shareScopeMap, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2104
2101
  const addUseIn = (shared)=>{
2105
2102
  if (!shared.useIn) {
2106
2103
  shared.useIn = [];
@@ -2124,7 +2121,7 @@ class FederationHost {
2124
2121
  shareInfoRes.lib = factory;
2125
2122
  shareInfoRes.loaded = true;
2126
2123
  addUseIn(shareInfoRes);
2127
- const gShared = share.getRegisteredShare(this.options.name, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2124
+ const gShared = share.getRegisteredShare(this.shareScopeMap, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2128
2125
  if (gShared) {
2129
2126
  gShared.lib = factory;
2130
2127
  gShared.loaded = true;
@@ -2150,8 +2147,7 @@ class FederationHost {
2150
2147
  shareInfoRes.lib = factory;
2151
2148
  shareInfoRes.loaded = true;
2152
2149
  addUseIn(shareInfoRes);
2153
- //@ts-ignore
2154
- const gShared = share.getRegisteredShare(this.options.name, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2150
+ const gShared = share.getRegisteredShare(this.shareScopeMap, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2155
2151
  if (gShared) {
2156
2152
  gShared.lib = factory;
2157
2153
  gShared.loaded = true;
@@ -2177,7 +2173,7 @@ class FederationHost {
2177
2173
  loadShareSync(pkgName) {
2178
2174
  var _this_options_shared;
2179
2175
  const shareInfo = (_this_options_shared = this.options.shared) == null ? void 0 : _this_options_shared[pkgName];
2180
- const registeredShared = share.getRegisteredShare(this.options.name, pkgName, shareInfo, this.hooks.lifecycle.resolveShare);
2176
+ const registeredShared = share.getRegisteredShare(this.shareScopeMap, pkgName, shareInfo, this.hooks.lifecycle.resolveShare);
2181
2177
  if (registeredShared && typeof registeredShared.lib === 'function') {
2182
2178
  share.addUniqueItem(registeredShared.useIn, this.options.name);
2183
2179
  if (!registeredShared.loaded) {
@@ -2257,7 +2253,8 @@ class FederationHost {
2257
2253
  remoteInfo,
2258
2254
  shared: this.options.shared || {},
2259
2255
  plugins: this.options.plugins,
2260
- loaderHook: this.loaderHook
2256
+ loaderHook: this.loaderHook,
2257
+ shareScopeMap: this.shareScopeMap
2261
2258
  };
2262
2259
  if (!module) {
2263
2260
  module = new Module(moduleOptions);
@@ -2338,12 +2335,8 @@ class FederationHost {
2338
2335
  * If the share scope does not exist, it creates one.
2339
2336
  */ // eslint-disable-next-line @typescript-eslint/member-ordering
2340
2337
  initializeSharing(shareScopeName = share.DEFAULT_SCOPE, strategy) {
2341
- const globalShareScope = share.Global.__FEDERATION__.__SHARE__;
2338
+ const shareScope = this.shareScopeMap;
2342
2339
  const hostName = this.options.name;
2343
- if (!globalShareScope[hostName]) {
2344
- globalShareScope[hostName] = {};
2345
- }
2346
- const shareScope = globalShareScope[hostName];
2347
2340
  // Creates a new share scope if necessary
2348
2341
  if (!shareScope[shareScopeName]) {
2349
2342
  shareScope[shareScopeName] = {};
@@ -2440,8 +2433,7 @@ class FederationHost {
2440
2433
  const sharedKeys = Object.keys(formatShareOptions);
2441
2434
  sharedKeys.forEach((sharedKey)=>{
2442
2435
  const sharedVal = formatShareOptions[sharedKey];
2443
- //@ts-ignore
2444
- const registeredShared = share.getRegisteredShare(userOptions.name, sharedKey, sharedVal, this.hooks.lifecycle.resolveShare);
2436
+ const registeredShared = share.getRegisteredShare(this.shareScopeMap, sharedKey, sharedVal, this.hooks.lifecycle.resolveShare);
2445
2437
  if (!registeredShared && sharedVal && sharedVal.lib) {
2446
2438
  this.setShared({
2447
2439
  pkgName: sharedKey,
@@ -2532,13 +2524,13 @@ class FederationHost {
2532
2524
  errorLoadRemote: new AsyncHook('errorLoadRemote'),
2533
2525
  beforeLoadShare: new AsyncWaterfallHook('beforeLoadShare'),
2534
2526
  loadShare: new AsyncHook(),
2535
- resolveShare: new SyncHook(),
2527
+ resolveShare: new SyncWaterfallHook('resolveShare'),
2536
2528
  beforePreloadRemote: new AsyncHook(),
2537
2529
  generatePreloadAssets: new AsyncHook('generatePreloadAssets'),
2538
2530
  afterPreloadRemote: new AsyncHook()
2539
2531
  });
2540
2532
  this.releaseNumber = `0`;
2541
- this.version = `0.0.0-feat-node-support-1702930274548`;
2533
+ this.version = `0.0.0-feat-node-support-1703050615268`;
2542
2534
  this.moduleCache = new Map();
2543
2535
  this.loaderHook = new PluginSystem({
2544
2536
  // FIXME: may not be suitable
package/index.esm.js CHANGED
@@ -866,13 +866,14 @@ function _ts_generator(thisArg1, body1) {
866
866
  }
867
867
  function importNodeModule(name11) {
868
868
  if (!name11) {
869
- throw new Error("import specifier is require");
870
- }
871
- return new Promise(function(resolve11, reject11) {
872
- new Function("callbacks", 'import("'.concat(name11, '").then((res)=>{callbacks.resolve(res);}, (error)=> callbacks.reject(error))'))({
873
- resolve: resolve11,
874
- reject: reject11
875
- });
869
+ throw new Error("import specifier is required");
870
+ }
871
+ var importModule11 = new Function("name", "return import(name)");
872
+ return importModule11(name11).then(function(res11) {
873
+ return res11.default;
874
+ }).catch(function(error11) {
875
+ console.error("Error importing module ".concat(name11, ":"), error11);
876
+ throw error11;
876
877
  });
877
878
  }
878
879
  function createScriptNode(url, cb, attrs, createScriptHook) {
@@ -997,8 +998,6 @@ function loadScriptNode(url11, info11) {
997
998
  reject11(error11);
998
999
  } else {
999
1000
  var _info_attrs2, _info_attrs11;
1000
- // Handle the loaded script context as needed
1001
- console.log("Script loaded successfully:", scriptContext11);
1002
1001
  var remoteEntryKey11 = (info11 === null || info11 === void 0 ? void 0 : (_info_attrs2 = info11.attrs) === null || _info_attrs2 === void 0 ? void 0 : _info_attrs2["globalName"]) || "__FEDERATION_".concat(info11 === null || info11 === void 0 ? void 0 : (_info_attrs11 = info11.attrs) === null || _info_attrs11 === void 0 ? void 0 : _info_attrs11["name"], ":custom__");
1003
1002
  var entryExports11 = globalThis[remoteEntryKey11] = scriptContext11;
1004
1003
  resolve11(entryExports11);
@@ -1150,15 +1149,11 @@ let Module = class Module {
1150
1149
  const { loadFactory = true } = options || {
1151
1150
  loadFactory: true
1152
1151
  };
1153
- const hostName = this.hostInfo.name;
1152
+ this.hostInfo.name;
1154
1153
  // Get remoteEntry.js
1155
1154
  const remoteEntryExports = await this.getEntry();
1156
1155
  if (!this.inited) {
1157
- const globalShareScopeMap = Global.__FEDERATION__.__SHARE__;
1158
- if (!globalShareScopeMap[hostName]) {
1159
- globalShareScopeMap[hostName] = {};
1160
- }
1161
- const localShareScopeMap = globalShareScopeMap[hostName];
1156
+ const localShareScopeMap = this.shareScopeMap;
1162
1157
  const remoteShareScope = this.remoteInfo.shareScope || 'default';
1163
1158
  if (!localShareScopeMap[remoteShareScope]) {
1164
1159
  localShareScopeMap[remoteShareScope] = {};
@@ -1180,9 +1175,9 @@ let Module = class Module {
1180
1175
  remotes: [],
1181
1176
  name: this.remoteInfo.name
1182
1177
  }));
1183
- if (!__FEDERATION__.__SHARE__['default'] && __FEDERATION__.__SHARE__[hostName] && __FEDERATION__.__SHARE__[hostName]['default']) {
1178
+ if (!__FEDERATION__.__SHARE__['default'] && this.shareScopeMap && this.shareScopeMap['default']) {
1184
1179
  // @ts-ignore compat prev logic , and it will be optimized by supporting startup hook
1185
- __FEDERATION__.__SHARE__['default'] = __FEDERATION__.__SHARE__[hostName]['default'];
1180
+ __FEDERATION__.__SHARE__['default'] = this.shareScopeMap['default'];
1186
1181
  }
1187
1182
  }
1188
1183
  }
@@ -1199,7 +1194,7 @@ let Module = class Module {
1199
1194
  return exposeContent;
1200
1195
  }
1201
1196
  // loading: Record<string, undefined | Promise<RemoteEntryExports | void>> = {};
1202
- constructor({ hostInfo, remoteInfo, shared, loaderHook }){
1197
+ constructor({ hostInfo, remoteInfo, shared, loaderHook, shareScopeMap }){
1203
1198
  this.inited = false;
1204
1199
  this.shared = {};
1205
1200
  this.lib = undefined;
@@ -1207,6 +1202,7 @@ let Module = class Module {
1207
1202
  this.remoteInfo = remoteInfo;
1208
1203
  this.shared = shared;
1209
1204
  this.loaderHook = loaderHook;
1205
+ this.shareScopeMap = shareScopeMap;
1210
1206
  }
1211
1207
  };
1212
1208
 
@@ -1737,7 +1733,7 @@ function generatePreloadAssets(origin, preloadOptions, remote, globalSnapshot, r
1737
1733
  if (!shareInfo) {
1738
1734
  return;
1739
1735
  }
1740
- const registeredShared = getRegisteredShare(origin.name, shared.sharedName, shareInfo, origin.hooks.lifecycle.resolveShare);
1736
+ const registeredShared = getRegisteredShare(origin.shareScopeMap, shared.sharedName, shareInfo, origin.hooks.lifecycle.resolveShare);
1741
1737
  // If the global share does not exist, or the lib function does not exist, it means that the shared has not been loaded yet and can be preloaded.
1742
1738
  if (registeredShared && typeof registeredShared.lib === 'function') {
1743
1739
  shared.assets.js.sync.forEach((asset)=>{
@@ -2064,8 +2060,9 @@ function _object_without_properties_loose(source, excluded) {
2064
2060
  class FederationHost {
2065
2061
  _setGlobalShareScopeMap() {
2066
2062
  const globalShareScopeMap = getGlobalShareScope();
2067
- if (this.options.name && !globalShareScopeMap[this.options.name]) {
2068
- globalShareScopeMap[this.options.name] = this.shareScopeMap;
2063
+ const identifier = this.options.id || this.options.name;
2064
+ if (identifier && !globalShareScopeMap[identifier]) {
2065
+ globalShareScopeMap[identifier] = this.shareScopeMap;
2069
2066
  }
2070
2067
  }
2071
2068
  initOptions(userOptions) {
@@ -2097,7 +2094,7 @@ class FederationHost {
2097
2094
  // Assert that shareInfoRes exists, if not, throw an error
2098
2095
  assert(shareInfoRes, `Cannot find ${pkgName} Share in the ${this.options.name}. Please ensure that the ${pkgName} Share parameters have been injected`);
2099
2096
  // Retrieve from cache
2100
- const registeredShared = getRegisteredShare(this.options.name, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2097
+ const registeredShared = getRegisteredShare(this.shareScopeMap, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2101
2098
  const addUseIn = (shared)=>{
2102
2099
  if (!shared.useIn) {
2103
2100
  shared.useIn = [];
@@ -2121,7 +2118,7 @@ class FederationHost {
2121
2118
  shareInfoRes.lib = factory;
2122
2119
  shareInfoRes.loaded = true;
2123
2120
  addUseIn(shareInfoRes);
2124
- const gShared = getRegisteredShare(this.options.name, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2121
+ const gShared = getRegisteredShare(this.shareScopeMap, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2125
2122
  if (gShared) {
2126
2123
  gShared.lib = factory;
2127
2124
  gShared.loaded = true;
@@ -2147,8 +2144,7 @@ class FederationHost {
2147
2144
  shareInfoRes.lib = factory;
2148
2145
  shareInfoRes.loaded = true;
2149
2146
  addUseIn(shareInfoRes);
2150
- //@ts-ignore
2151
- const gShared = getRegisteredShare(this.options.name, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2147
+ const gShared = getRegisteredShare(this.shareScopeMap, pkgName, shareInfoRes, this.hooks.lifecycle.resolveShare);
2152
2148
  if (gShared) {
2153
2149
  gShared.lib = factory;
2154
2150
  gShared.loaded = true;
@@ -2174,7 +2170,7 @@ class FederationHost {
2174
2170
  loadShareSync(pkgName) {
2175
2171
  var _this_options_shared;
2176
2172
  const shareInfo = (_this_options_shared = this.options.shared) == null ? void 0 : _this_options_shared[pkgName];
2177
- const registeredShared = getRegisteredShare(this.options.name, pkgName, shareInfo, this.hooks.lifecycle.resolveShare);
2173
+ const registeredShared = getRegisteredShare(this.shareScopeMap, pkgName, shareInfo, this.hooks.lifecycle.resolveShare);
2178
2174
  if (registeredShared && typeof registeredShared.lib === 'function') {
2179
2175
  addUniqueItem(registeredShared.useIn, this.options.name);
2180
2176
  if (!registeredShared.loaded) {
@@ -2254,7 +2250,8 @@ class FederationHost {
2254
2250
  remoteInfo,
2255
2251
  shared: this.options.shared || {},
2256
2252
  plugins: this.options.plugins,
2257
- loaderHook: this.loaderHook
2253
+ loaderHook: this.loaderHook,
2254
+ shareScopeMap: this.shareScopeMap
2258
2255
  };
2259
2256
  if (!module) {
2260
2257
  module = new Module(moduleOptions);
@@ -2335,12 +2332,8 @@ class FederationHost {
2335
2332
  * If the share scope does not exist, it creates one.
2336
2333
  */ // eslint-disable-next-line @typescript-eslint/member-ordering
2337
2334
  initializeSharing(shareScopeName = DEFAULT_SCOPE, strategy) {
2338
- const globalShareScope = Global.__FEDERATION__.__SHARE__;
2335
+ const shareScope = this.shareScopeMap;
2339
2336
  const hostName = this.options.name;
2340
- if (!globalShareScope[hostName]) {
2341
- globalShareScope[hostName] = {};
2342
- }
2343
- const shareScope = globalShareScope[hostName];
2344
2337
  // Creates a new share scope if necessary
2345
2338
  if (!shareScope[shareScopeName]) {
2346
2339
  shareScope[shareScopeName] = {};
@@ -2437,8 +2430,7 @@ class FederationHost {
2437
2430
  const sharedKeys = Object.keys(formatShareOptions);
2438
2431
  sharedKeys.forEach((sharedKey)=>{
2439
2432
  const sharedVal = formatShareOptions[sharedKey];
2440
- //@ts-ignore
2441
- const registeredShared = getRegisteredShare(userOptions.name, sharedKey, sharedVal, this.hooks.lifecycle.resolveShare);
2433
+ const registeredShared = getRegisteredShare(this.shareScopeMap, sharedKey, sharedVal, this.hooks.lifecycle.resolveShare);
2442
2434
  if (!registeredShared && sharedVal && sharedVal.lib) {
2443
2435
  this.setShared({
2444
2436
  pkgName: sharedKey,
@@ -2529,13 +2521,13 @@ class FederationHost {
2529
2521
  errorLoadRemote: new AsyncHook('errorLoadRemote'),
2530
2522
  beforeLoadShare: new AsyncWaterfallHook('beforeLoadShare'),
2531
2523
  loadShare: new AsyncHook(),
2532
- resolveShare: new SyncHook(),
2524
+ resolveShare: new SyncWaterfallHook('resolveShare'),
2533
2525
  beforePreloadRemote: new AsyncHook(),
2534
2526
  generatePreloadAssets: new AsyncHook('generatePreloadAssets'),
2535
2527
  afterPreloadRemote: new AsyncHook()
2536
2528
  });
2537
2529
  this.releaseNumber = `0`;
2538
- this.version = `0.0.0-feat-node-support-1702930274548`;
2530
+ this.version = `0.0.0-feat-node-support-1703050615268`;
2539
2531
  this.moduleCache = new Map();
2540
2532
  this.loaderHook = new PluginSystem({
2541
2533
  // FIXME: may not be suitable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/runtime",
3
- "version": "0.0.0-feat-node-support-1702930274548",
3
+ "version": "0.0.0-feat-node-support-1703050615268",
4
4
  "author": "zhouxiao <codingzx@gmail.com>",
5
5
  "main": "./index.cjs.js",
6
6
  "module": "./index.esm.js",
@@ -34,7 +34,7 @@
34
34
  }
35
35
  },
36
36
  "dependencies": {
37
- "@module-federation/sdk": "0.0.0-feat-node-support-1702930274548",
37
+ "@module-federation/sdk": "0.0.0-feat-node-support-1703050615268",
38
38
  "semver": "7.5.4"
39
39
  },
40
40
  "peerDependencies": {}
package/share.cjs.js CHANGED
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  function getBuilderId() {
4
- //@ts-ignore
5
4
  return typeof FEDERATION_BUILD_IDENTIFIER !== 'undefined' ? FEDERATION_BUILD_IDENTIFIER : '';
6
5
  }
7
6
  function isDebugMode() {
@@ -165,7 +164,7 @@ function getGlobalFederationConstructor() {
165
164
  function setGlobalFederationConstructor(FederationConstructor) {
166
165
  if (isDebugMode()) {
167
166
  Global.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;
168
- Global.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = '0.0.0-feat-node-support-1702930274548';
167
+ Global.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = '0.0.0-feat-node-support-1703050615268';
169
168
  }
170
169
  }
171
170
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -708,9 +707,7 @@ function getFindShareFunction(strategy) {
708
707
  }
709
708
  // Details about shared resources
710
709
  // TODO: Implement strictVersion for alignment with module federation.
711
- function getRegisteredShare(instanceName, pkgName, shareInfo, resolveShareHook) {
712
- const globalShares = Global.__FEDERATION__.__SHARE__;
713
- const localShareScopeMap = globalShares[instanceName];
710
+ function getRegisteredShare(localShareScopeMap, pkgName, shareInfo, resolveShare) {
714
711
  if (!localShareScopeMap) {
715
712
  return;
716
713
  }
@@ -749,7 +746,7 @@ function getRegisteredShare(instanceName, pkgName, shareInfo, resolveShareHook)
749
746
  GlobalFederation: Global.__FEDERATION__,
750
747
  resolver: defaultResolver
751
748
  };
752
- const resolveShared = resolveShareHook.emit(params) || params;
749
+ const resolveShared = resolveShare.emit(params) || params;
753
750
  return resolveShared.resolver();
754
751
  }
755
752
  }
package/share.esm.js CHANGED
@@ -1,5 +1,4 @@
1
1
  function getBuilderId() {
2
- //@ts-ignore
3
2
  return typeof FEDERATION_BUILD_IDENTIFIER !== 'undefined' ? FEDERATION_BUILD_IDENTIFIER : '';
4
3
  }
5
4
  function isDebugMode() {
@@ -163,7 +162,7 @@ function getGlobalFederationConstructor() {
163
162
  function setGlobalFederationConstructor(FederationConstructor) {
164
163
  if (isDebugMode()) {
165
164
  Global.__FEDERATION__.__DEBUG_CONSTRUCTOR__ = FederationConstructor;
166
- Global.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = '0.0.0-feat-node-support-1702930274548';
165
+ Global.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__ = '0.0.0-feat-node-support-1703050615268';
167
166
  }
168
167
  }
169
168
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -706,9 +705,7 @@ function getFindShareFunction(strategy) {
706
705
  }
707
706
  // Details about shared resources
708
707
  // TODO: Implement strictVersion for alignment with module federation.
709
- function getRegisteredShare(instanceName, pkgName, shareInfo, resolveShareHook) {
710
- const globalShares = Global.__FEDERATION__.__SHARE__;
711
- const localShareScopeMap = globalShares[instanceName];
708
+ function getRegisteredShare(localShareScopeMap, pkgName, shareInfo, resolveShare) {
712
709
  if (!localShareScopeMap) {
713
710
  return;
714
711
  }
@@ -747,7 +744,7 @@ function getRegisteredShare(instanceName, pkgName, shareInfo, resolveShareHook)
747
744
  GlobalFederation: Global.__FEDERATION__,
748
745
  resolver: defaultResolver
749
746
  };
750
- const resolveShared = resolveShareHook.emit(params) || params;
747
+ const resolveShared = resolveShare.emit(params) || params;
751
748
  return resolveShared.resolver();
752
749
  }
753
750
  }
package/src/core.d.ts CHANGED
@@ -61,14 +61,14 @@ export declare class FederationHost {
61
61
  origin: FederationHost;
62
62
  }>;
63
63
  loadShare: AsyncHook<[FederationHost, string, ShareInfos], false | void | Promise<false | void>>;
64
- resolveShare: SyncHook<[{
64
+ resolveShare: SyncWaterfallHook<{
65
65
  shareScopeMap: ShareScopeMap;
66
66
  scope: string;
67
67
  pkgName: string;
68
68
  version: string;
69
69
  GlobalFederation: Federation;
70
- resolver: () => Shared;
71
- }], void>;
70
+ resolver: () => Shared | undefined;
71
+ }>;
72
72
  beforePreloadRemote: AsyncHook<{
73
73
  preloadOps: Array<PreloadRemoteArgs>;
74
74
  options: Options;
@@ -1,5 +1,5 @@
1
1
  import { FederationHost } from '../core';
2
- import { RemoteEntryExports, Options, Remote, ShareInfos, RemoteInfo } from '../type';
2
+ import { RemoteEntryExports, Options, Remote, ShareInfos, RemoteInfo, ShareScopeMap } from '../type';
3
3
  export type ModuleOptions = ConstructorParameters<typeof Module>[0];
4
4
  type HostInfo = Remote;
5
5
  declare class Module {
@@ -10,12 +10,14 @@ declare class Module {
10
10
  remoteEntryExports?: RemoteEntryExports;
11
11
  lib: RemoteEntryExports | undefined;
12
12
  loaderHook: FederationHost['loaderHook'];
13
- constructor({ hostInfo, remoteInfo, shared, loaderHook, }: {
13
+ shareScopeMap: ShareScopeMap;
14
+ constructor({ hostInfo, remoteInfo, shared, loaderHook, shareScopeMap, }: {
14
15
  hostInfo: HostInfo;
15
16
  remoteInfo: RemoteInfo;
16
17
  shared: ShareInfos;
17
18
  plugins: Options['plugins'];
18
19
  loaderHook: FederationHost['loaderHook'];
20
+ shareScopeMap: ShareScopeMap;
19
21
  });
20
22
  getEntry(): Promise<RemoteEntryExports>;
21
23
  get(expose: string, options?: {
@@ -1,7 +1,16 @@
1
- import { GlobalShareScopeMap, Shared, ShareArgs, ShareInfos } from '../type';
1
+ import { Federation } from '../global';
2
+ import { GlobalShareScopeMap, Shared, ShareArgs, ShareInfos, ShareScopeMap } from '../type';
3
+ import { SyncWaterfallHook } from './hooks';
2
4
  export declare function formatShare(shareArgs: ShareArgs, from: string): Shared;
3
5
  export declare function formatShareConfigs(shareArgs: {
4
6
  [pkgName: string]: ShareArgs;
5
7
  }, from: string): ShareInfos;
6
- export declare function getRegisteredShare(instanceName: string, pkgName: string, shareInfo: ShareInfos[keyof ShareInfos], resolveShareHook: any): Shared | void;
8
+ export declare function getRegisteredShare(localShareScopeMap: ShareScopeMap, pkgName: string, shareInfo: ShareInfos[keyof ShareInfos], resolveShare: SyncWaterfallHook<{
9
+ shareScopeMap: ShareScopeMap;
10
+ scope: string;
11
+ pkgName: string;
12
+ version: string;
13
+ GlobalFederation: Federation;
14
+ resolver: () => Shared | undefined;
15
+ }>): Shared | void;
7
16
  export declare function getGlobalShareScope(): GlobalShareScopeMap;