@module-federation/runtime 2.3.3 → 2.5.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.
package/dist/index.cjs CHANGED
@@ -6,21 +6,25 @@ let _module_federation_error_codes = require("@module-federation/error-codes");
6
6
 
7
7
  //#region src/index.ts
8
8
  function createInstance(options) {
9
- const instance = new (((0, _module_federation_runtime_core.getGlobalFederationConstructor)()) || _module_federation_runtime_core.ModuleFederation)(options);
9
+ const instance = new (((0, _module_federation_runtime_core.getGlobalFederationConstructor)()) || _module_federation_runtime_core.ModuleFederation)({
10
+ id: `${options.name}@${options.version || Date.now()}`,
11
+ ...options
12
+ });
10
13
  (0, _module_federation_runtime_core.setGlobalFederationInstance)(instance);
11
14
  return instance;
12
15
  }
13
16
  let FederationInstance = null;
14
- /**
15
- * @deprecated Use createInstance or getInstance instead
16
- */
17
17
  function init(options) {
18
18
  const instance = require_utils.getGlobalFederationInstance(options.name, options.version);
19
+ const normalizedOptions = {
20
+ ...options,
21
+ id: options.id || ""
22
+ };
19
23
  if (!instance) {
20
- FederationInstance = createInstance(options);
24
+ FederationInstance = createInstance(normalizedOptions);
21
25
  return FederationInstance;
22
26
  } else {
23
- instance.initOptions(options);
27
+ instance.initOptions(normalizedOptions);
24
28
  if (!FederationInstance) FederationInstance = instance;
25
29
  return instance;
26
30
  }
@@ -49,8 +53,9 @@ function registerPlugins(...args) {
49
53
  (0, _module_federation_runtime_core.assert)(FederationInstance, _module_federation_error_codes.RUNTIME_009, _module_federation_error_codes.runtimeDescMap);
50
54
  return FederationInstance.registerPlugins.apply(FederationInstance, args);
51
55
  }
52
- function getInstance() {
53
- return FederationInstance;
56
+ function getInstance(finder) {
57
+ if (!finder) return FederationInstance;
58
+ return _module_federation_runtime_core.CurrentGlobal.__FEDERATION__.__INSTANCES__.find(finder) || null;
54
59
  }
55
60
  function registerShared(...args) {
56
61
  (0, _module_federation_runtime_core.assert)(FederationInstance, _module_federation_error_codes.RUNTIME_009, _module_federation_error_codes.runtimeDescMap);
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["ModuleFederation","getGlobalFederationInstance","RUNTIME_009","runtimeDescMap"],"sources":["../src/index.ts"],"sourcesContent":["import {\n ModuleFederation,\n type UserOptions,\n getGlobalFederationConstructor,\n setGlobalFederationInstance,\n assert,\n setGlobalFederationConstructor,\n} from '@module-federation/runtime-core';\nimport { runtimeDescMap, RUNTIME_009 } from '@module-federation/error-codes';\nimport { getGlobalFederationInstance } from './utils';\n\nexport {\n loadScript,\n loadScriptNode,\n Module,\n getRemoteEntry,\n getRemoteInfo,\n registerGlobalPlugins,\n type ModuleFederationRuntimePlugin,\n type Federation,\n} from '@module-federation/runtime-core';\n\nexport { ModuleFederation };\n\nexport function createInstance(options: UserOptions) {\n // Retrieve debug constructor\n const ModuleFederationConstructor =\n getGlobalFederationConstructor() || ModuleFederation;\n const instance = new ModuleFederationConstructor(options);\n setGlobalFederationInstance(instance);\n return instance;\n}\n\nlet FederationInstance: ModuleFederation | null = null;\n/**\n * @deprecated Use createInstance or getInstance instead\n */\nexport function init(options: UserOptions): ModuleFederation {\n // Retrieve the same instance with the same name\n const instance = getGlobalFederationInstance(options.name, options.version);\n if (!instance) {\n FederationInstance = createInstance(options);\n return FederationInstance;\n } else {\n // Merge options\n instance.initOptions(options);\n if (!FederationInstance) {\n FederationInstance = instance;\n }\n return instance;\n }\n}\n\nexport function loadRemote<T>(\n ...args: Parameters<ModuleFederation['loadRemote']>\n): Promise<T | null> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n const loadRemote: typeof FederationInstance.loadRemote<T> =\n FederationInstance.loadRemote;\n // eslint-disable-next-line prefer-spread\n return loadRemote.apply(FederationInstance, args);\n}\n\nexport function loadShare<T>(\n ...args: Parameters<ModuleFederation['loadShare']>\n): Promise<false | (() => T | undefined)> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n const loadShare: typeof FederationInstance.loadShare<T> =\n FederationInstance.loadShare;\n return loadShare.apply(FederationInstance, args);\n}\n\nexport function loadShareSync<T>(\n ...args: Parameters<ModuleFederation['loadShareSync']>\n): () => T | never {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n const loadShareSync: typeof FederationInstance.loadShareSync<T> =\n FederationInstance.loadShareSync;\n // eslint-disable-next-line prefer-spread\n return loadShareSync.apply(FederationInstance, args);\n}\n\nexport function preloadRemote(\n ...args: Parameters<ModuleFederation['preloadRemote']>\n): ReturnType<ModuleFederation['preloadRemote']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.preloadRemote.apply(FederationInstance, args);\n}\n\nexport function registerRemotes(\n ...args: Parameters<ModuleFederation['registerRemotes']>\n): ReturnType<ModuleFederation['registerRemotes']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerRemotes.apply(FederationInstance, args);\n}\n\nexport function registerPlugins(\n ...args: Parameters<ModuleFederation['registerPlugins']>\n): ReturnType<ModuleFederation['registerRemotes']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerPlugins.apply(FederationInstance, args);\n}\n\nexport function getInstance() {\n return FederationInstance;\n}\n\nexport function registerShared(\n ...args: Parameters<ModuleFederation['registerShared']>\n): ReturnType<ModuleFederation['registerShared']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerShared.apply(FederationInstance, args);\n}\n\n// Inject for debug\nsetGlobalFederationConstructor(ModuleFederation);\n"],"mappings":";;;;;;;AAwBA,SAAgB,eAAe,SAAsB;CAInD,MAAM,WAAW,2EADiB,KAAIA,kDACW,QAAQ;AACzD,kEAA4B,SAAS;AACrC,QAAO;;AAGT,IAAI,qBAA8C;;;;AAIlD,SAAgB,KAAK,SAAwC;CAE3D,MAAM,WAAWC,0CAA4B,QAAQ,MAAM,QAAQ,QAAQ;AAC3E,KAAI,CAAC,UAAU;AACb,uBAAqB,eAAe,QAAQ;AAC5C,SAAO;QACF;AAEL,WAAS,YAAY,QAAQ;AAC7B,MAAI,CAAC,mBACH,sBAAqB;AAEvB,SAAO;;;AAIX,SAAgB,WACd,GAAG,MACgB;AACnB,6CAAO,oBAAoBC,4CAAaC,8CAAe;AAIvD,QAFE,mBAAmB,WAEH,MAAM,oBAAoB,KAAK;;AAGnD,SAAgB,UACd,GAAG,MACqC;AACxC,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAIvD,QADE,mBAAmB,UACJ,MAAM,oBAAoB,KAAK;;AAGlD,SAAgB,cACd,GAAG,MACc;AACjB,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAIvD,QAFE,mBAAmB,cAEA,MAAM,oBAAoB,KAAK;;AAGtD,SAAgB,cACd,GAAG,MAC4C;AAC/C,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAEvD,QAAO,mBAAmB,cAAc,MAAM,oBAAoB,KAAK;;AAGzE,SAAgB,gBACd,GAAG,MAC8C;AACjD,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAEvD,QAAO,mBAAmB,gBAAgB,MAAM,oBAAoB,KAAK;;AAG3E,SAAgB,gBACd,GAAG,MAC8C;AACjD,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAEvD,QAAO,mBAAmB,gBAAgB,MAAM,oBAAoB,KAAK;;AAG3E,SAAgB,cAAc;AAC5B,QAAO;;AAGT,SAAgB,eACd,GAAG,MAC6C;AAChD,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAEvD,QAAO,mBAAmB,eAAe,MAAM,oBAAoB,KAAK;;oEAI3CH,iDAAiB"}
1
+ {"version":3,"file":"index.cjs","names":["ModuleFederation","getGlobalFederationInstance","RUNTIME_009","runtimeDescMap","CurrentGlobal"],"sources":["../src/index.ts"],"sourcesContent":["import {\n ModuleFederation,\n type UserOptions,\n CurrentGlobal,\n getGlobalFederationConstructor,\n setGlobalFederationInstance,\n assert,\n setGlobalFederationConstructor,\n} from '@module-federation/runtime-core';\nimport { runtimeDescMap, RUNTIME_009 } from '@module-federation/error-codes';\nimport { getGlobalFederationInstance } from './utils';\n\nexport {\n loadScript,\n loadScriptNode,\n Module,\n getRemoteEntry,\n getRemoteInfo,\n registerGlobalPlugins,\n type ModuleFederationRuntimePlugin,\n type Federation,\n} from '@module-federation/runtime-core';\n\nexport { ModuleFederation };\n\nexport function createInstance(options: UserOptions) {\n // Retrieve debug constructor\n const ModuleFederationConstructor =\n getGlobalFederationConstructor() || ModuleFederation;\n const instance = new ModuleFederationConstructor({\n id: `${options.name}@${options.version || Date.now()}`,\n ...options,\n });\n setGlobalFederationInstance(instance);\n return instance;\n}\n\nlet FederationInstance: ModuleFederation | null = null;\nexport function init(options: UserOptions): ModuleFederation {\n // Retrieve the same instance with the same name\n const instance = getGlobalFederationInstance(options.name, options.version);\n const normalizedOptions = { ...options, id: options.id || '' };\n if (!instance) {\n FederationInstance = createInstance(normalizedOptions);\n return FederationInstance;\n } else {\n // Merge options\n instance.initOptions(normalizedOptions);\n if (!FederationInstance) {\n FederationInstance = instance;\n }\n return instance;\n }\n}\n\nexport function loadRemote<T>(\n ...args: Parameters<ModuleFederation['loadRemote']>\n): Promise<T | null> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n const loadRemote: typeof FederationInstance.loadRemote<T> =\n FederationInstance.loadRemote;\n // eslint-disable-next-line prefer-spread\n return loadRemote.apply(FederationInstance, args);\n}\n\nexport function loadShare<T>(\n ...args: Parameters<ModuleFederation['loadShare']>\n): Promise<false | (() => T | undefined)> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n const loadShare: typeof FederationInstance.loadShare<T> =\n FederationInstance.loadShare;\n return loadShare.apply(FederationInstance, args);\n}\n\nexport function loadShareSync<T>(\n ...args: Parameters<ModuleFederation['loadShareSync']>\n): () => T | never {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n const loadShareSync: typeof FederationInstance.loadShareSync<T> =\n FederationInstance.loadShareSync;\n // eslint-disable-next-line prefer-spread\n return loadShareSync.apply(FederationInstance, args);\n}\n\nexport function preloadRemote(\n ...args: Parameters<ModuleFederation['preloadRemote']>\n): ReturnType<ModuleFederation['preloadRemote']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.preloadRemote.apply(FederationInstance, args);\n}\n\nexport function registerRemotes(\n ...args: Parameters<ModuleFederation['registerRemotes']>\n): ReturnType<ModuleFederation['registerRemotes']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerRemotes.apply(FederationInstance, args);\n}\n\nexport function registerPlugins(\n ...args: Parameters<ModuleFederation['registerPlugins']>\n): ReturnType<ModuleFederation['registerRemotes']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerPlugins.apply(FederationInstance, args);\n}\n\nexport function getInstance(): ModuleFederation | null;\nexport function getInstance(\n finder: (instance: ModuleFederation) => boolean,\n): ModuleFederation | null;\nexport function getInstance(finder?: (instance: ModuleFederation) => boolean) {\n if (!finder) {\n return FederationInstance;\n }\n\n return CurrentGlobal.__FEDERATION__.__INSTANCES__.find(finder) || null;\n}\n\nexport function registerShared(\n ...args: Parameters<ModuleFederation['registerShared']>\n): ReturnType<ModuleFederation['registerShared']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerShared.apply(FederationInstance, args);\n}\n\n// Inject for debug\nsetGlobalFederationConstructor(ModuleFederation);\n"],"mappings":";;;;;;;AAyBA,SAAgB,eAAe,SAAsB;CAInD,MAAM,WAAW,2EADiB,KAAIA,kDACW;EAC/C,IAAI,GAAG,QAAQ,KAAK,GAAG,QAAQ,WAAW,KAAK,KAAK;EACpD,GAAG;EACJ,CAAC;AACF,kEAA4B,SAAS;AACrC,QAAO;;AAGT,IAAI,qBAA8C;AAClD,SAAgB,KAAK,SAAwC;CAE3D,MAAM,WAAWC,0CAA4B,QAAQ,MAAM,QAAQ,QAAQ;CAC3E,MAAM,oBAAoB;EAAE,GAAG;EAAS,IAAI,QAAQ,MAAM;EAAI;AAC9D,KAAI,CAAC,UAAU;AACb,uBAAqB,eAAe,kBAAkB;AACtD,SAAO;QACF;AAEL,WAAS,YAAY,kBAAkB;AACvC,MAAI,CAAC,mBACH,sBAAqB;AAEvB,SAAO;;;AAIX,SAAgB,WACd,GAAG,MACgB;AACnB,6CAAO,oBAAoBC,4CAAaC,8CAAe;AAIvD,QAFE,mBAAmB,WAEH,MAAM,oBAAoB,KAAK;;AAGnD,SAAgB,UACd,GAAG,MACqC;AACxC,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAIvD,QADE,mBAAmB,UACJ,MAAM,oBAAoB,KAAK;;AAGlD,SAAgB,cACd,GAAG,MACc;AACjB,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAIvD,QAFE,mBAAmB,cAEA,MAAM,oBAAoB,KAAK;;AAGtD,SAAgB,cACd,GAAG,MAC4C;AAC/C,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAEvD,QAAO,mBAAmB,cAAc,MAAM,oBAAoB,KAAK;;AAGzE,SAAgB,gBACd,GAAG,MAC8C;AACjD,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAEvD,QAAO,mBAAmB,gBAAgB,MAAM,oBAAoB,KAAK;;AAG3E,SAAgB,gBACd,GAAG,MAC8C;AACjD,6CAAO,oBAAoBD,4CAAaC,8CAAe;AAEvD,QAAO,mBAAmB,gBAAgB,MAAM,oBAAoB,KAAK;;AAO3E,SAAgB,YAAY,QAAkD;AAC5E,KAAI,CAAC,OACH,QAAO;AAGT,QAAOC,8CAAc,eAAe,cAAc,KAAK,OAAO,IAAI;;AAGpE,SAAgB,eACd,GAAG,MAC6C;AAChD,6CAAO,oBAAoBF,4CAAaC,8CAAe;AAEvD,QAAO,mBAAmB,eAAe,MAAM,oBAAoB,KAAK;;oEAI3CH,iDAAiB"}
package/dist/index.d.ts CHANGED
@@ -2,9 +2,6 @@ import { Federation, Module, ModuleFederation, ModuleFederationRuntimePlugin, Us
2
2
 
3
3
  //#region src/index.d.ts
4
4
  declare function createInstance(options: UserOptions): ModuleFederation;
5
- /**
6
- * @deprecated Use createInstance or getInstance instead
7
- */
8
5
  declare function init(options: UserOptions): ModuleFederation;
9
6
  declare function loadRemote<T>(...args: Parameters<ModuleFederation['loadRemote']>): Promise<T | null>;
10
7
  declare function loadShare<T>(...args: Parameters<ModuleFederation['loadShare']>): Promise<false | (() => T | undefined)>;
@@ -13,6 +10,7 @@ declare function preloadRemote(...args: Parameters<ModuleFederation['preloadRemo
13
10
  declare function registerRemotes(...args: Parameters<ModuleFederation['registerRemotes']>): ReturnType<ModuleFederation['registerRemotes']>;
14
11
  declare function registerPlugins(...args: Parameters<ModuleFederation['registerPlugins']>): ReturnType<ModuleFederation['registerRemotes']>;
15
12
  declare function getInstance(): ModuleFederation | null;
13
+ declare function getInstance(finder: (instance: ModuleFederation) => boolean): ModuleFederation | null;
16
14
  declare function registerShared(...args: Parameters<ModuleFederation['registerShared']>): ReturnType<ModuleFederation['registerShared']>;
17
15
  //#endregion
18
16
  export { type Federation, Module, ModuleFederation, type ModuleFederationRuntimePlugin, createInstance, getInstance, getRemoteEntry, getRemoteInfo, init, loadRemote, loadScript, loadScriptNode, loadShare, loadShareSync, preloadRemote, registerGlobalPlugins, registerPlugins, registerRemotes, registerShared };
package/dist/index.js CHANGED
@@ -1,24 +1,28 @@
1
1
  import { getGlobalFederationInstance } from "./utils.js";
2
- import { Module, ModuleFederation, assert, getGlobalFederationConstructor, getRemoteEntry, getRemoteInfo, loadScript, loadScriptNode, registerGlobalPlugins, setGlobalFederationConstructor, setGlobalFederationInstance } from "@module-federation/runtime-core";
2
+ import { CurrentGlobal, Module, ModuleFederation, assert, getGlobalFederationConstructor, getRemoteEntry, getRemoteInfo, loadScript, loadScriptNode, registerGlobalPlugins, setGlobalFederationConstructor, setGlobalFederationInstance } from "@module-federation/runtime-core";
3
3
  import { RUNTIME_009, runtimeDescMap } from "@module-federation/error-codes";
4
4
 
5
5
  //#region src/index.ts
6
6
  function createInstance(options) {
7
- const instance = new ((getGlobalFederationConstructor()) || ModuleFederation)(options);
7
+ const instance = new ((getGlobalFederationConstructor()) || ModuleFederation)({
8
+ id: `${options.name}@${options.version || Date.now()}`,
9
+ ...options
10
+ });
8
11
  setGlobalFederationInstance(instance);
9
12
  return instance;
10
13
  }
11
14
  let FederationInstance = null;
12
- /**
13
- * @deprecated Use createInstance or getInstance instead
14
- */
15
15
  function init(options) {
16
16
  const instance = getGlobalFederationInstance(options.name, options.version);
17
+ const normalizedOptions = {
18
+ ...options,
19
+ id: options.id || ""
20
+ };
17
21
  if (!instance) {
18
- FederationInstance = createInstance(options);
22
+ FederationInstance = createInstance(normalizedOptions);
19
23
  return FederationInstance;
20
24
  } else {
21
- instance.initOptions(options);
25
+ instance.initOptions(normalizedOptions);
22
26
  if (!FederationInstance) FederationInstance = instance;
23
27
  return instance;
24
28
  }
@@ -47,8 +51,9 @@ function registerPlugins(...args) {
47
51
  assert(FederationInstance, RUNTIME_009, runtimeDescMap);
48
52
  return FederationInstance.registerPlugins.apply(FederationInstance, args);
49
53
  }
50
- function getInstance() {
51
- return FederationInstance;
54
+ function getInstance(finder) {
55
+ if (!finder) return FederationInstance;
56
+ return CurrentGlobal.__FEDERATION__.__INSTANCES__.find(finder) || null;
52
57
  }
53
58
  function registerShared(...args) {
54
59
  assert(FederationInstance, RUNTIME_009, runtimeDescMap);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n ModuleFederation,\n type UserOptions,\n getGlobalFederationConstructor,\n setGlobalFederationInstance,\n assert,\n setGlobalFederationConstructor,\n} from '@module-federation/runtime-core';\nimport { runtimeDescMap, RUNTIME_009 } from '@module-federation/error-codes';\nimport { getGlobalFederationInstance } from './utils';\n\nexport {\n loadScript,\n loadScriptNode,\n Module,\n getRemoteEntry,\n getRemoteInfo,\n registerGlobalPlugins,\n type ModuleFederationRuntimePlugin,\n type Federation,\n} from '@module-federation/runtime-core';\n\nexport { ModuleFederation };\n\nexport function createInstance(options: UserOptions) {\n // Retrieve debug constructor\n const ModuleFederationConstructor =\n getGlobalFederationConstructor() || ModuleFederation;\n const instance = new ModuleFederationConstructor(options);\n setGlobalFederationInstance(instance);\n return instance;\n}\n\nlet FederationInstance: ModuleFederation | null = null;\n/**\n * @deprecated Use createInstance or getInstance instead\n */\nexport function init(options: UserOptions): ModuleFederation {\n // Retrieve the same instance with the same name\n const instance = getGlobalFederationInstance(options.name, options.version);\n if (!instance) {\n FederationInstance = createInstance(options);\n return FederationInstance;\n } else {\n // Merge options\n instance.initOptions(options);\n if (!FederationInstance) {\n FederationInstance = instance;\n }\n return instance;\n }\n}\n\nexport function loadRemote<T>(\n ...args: Parameters<ModuleFederation['loadRemote']>\n): Promise<T | null> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n const loadRemote: typeof FederationInstance.loadRemote<T> =\n FederationInstance.loadRemote;\n // eslint-disable-next-line prefer-spread\n return loadRemote.apply(FederationInstance, args);\n}\n\nexport function loadShare<T>(\n ...args: Parameters<ModuleFederation['loadShare']>\n): Promise<false | (() => T | undefined)> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n const loadShare: typeof FederationInstance.loadShare<T> =\n FederationInstance.loadShare;\n return loadShare.apply(FederationInstance, args);\n}\n\nexport function loadShareSync<T>(\n ...args: Parameters<ModuleFederation['loadShareSync']>\n): () => T | never {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n const loadShareSync: typeof FederationInstance.loadShareSync<T> =\n FederationInstance.loadShareSync;\n // eslint-disable-next-line prefer-spread\n return loadShareSync.apply(FederationInstance, args);\n}\n\nexport function preloadRemote(\n ...args: Parameters<ModuleFederation['preloadRemote']>\n): ReturnType<ModuleFederation['preloadRemote']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.preloadRemote.apply(FederationInstance, args);\n}\n\nexport function registerRemotes(\n ...args: Parameters<ModuleFederation['registerRemotes']>\n): ReturnType<ModuleFederation['registerRemotes']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerRemotes.apply(FederationInstance, args);\n}\n\nexport function registerPlugins(\n ...args: Parameters<ModuleFederation['registerPlugins']>\n): ReturnType<ModuleFederation['registerRemotes']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerPlugins.apply(FederationInstance, args);\n}\n\nexport function getInstance() {\n return FederationInstance;\n}\n\nexport function registerShared(\n ...args: Parameters<ModuleFederation['registerShared']>\n): ReturnType<ModuleFederation['registerShared']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerShared.apply(FederationInstance, args);\n}\n\n// Inject for debug\nsetGlobalFederationConstructor(ModuleFederation);\n"],"mappings":";;;;;AAwBA,SAAgB,eAAe,SAAsB;CAInD,MAAM,WAAW,MADf,gCAAgC,KAAI,kBACW,QAAQ;AACzD,6BAA4B,SAAS;AACrC,QAAO;;AAGT,IAAI,qBAA8C;;;;AAIlD,SAAgB,KAAK,SAAwC;CAE3D,MAAM,WAAW,4BAA4B,QAAQ,MAAM,QAAQ,QAAQ;AAC3E,KAAI,CAAC,UAAU;AACb,uBAAqB,eAAe,QAAQ;AAC5C,SAAO;QACF;AAEL,WAAS,YAAY,QAAQ;AAC7B,MAAI,CAAC,mBACH,sBAAqB;AAEvB,SAAO;;;AAIX,SAAgB,WACd,GAAG,MACgB;AACnB,QAAO,oBAAoB,aAAa,eAAe;AAIvD,QAFE,mBAAmB,WAEH,MAAM,oBAAoB,KAAK;;AAGnD,SAAgB,UACd,GAAG,MACqC;AACxC,QAAO,oBAAoB,aAAa,eAAe;AAIvD,QADE,mBAAmB,UACJ,MAAM,oBAAoB,KAAK;;AAGlD,SAAgB,cACd,GAAG,MACc;AACjB,QAAO,oBAAoB,aAAa,eAAe;AAIvD,QAFE,mBAAmB,cAEA,MAAM,oBAAoB,KAAK;;AAGtD,SAAgB,cACd,GAAG,MAC4C;AAC/C,QAAO,oBAAoB,aAAa,eAAe;AAEvD,QAAO,mBAAmB,cAAc,MAAM,oBAAoB,KAAK;;AAGzE,SAAgB,gBACd,GAAG,MAC8C;AACjD,QAAO,oBAAoB,aAAa,eAAe;AAEvD,QAAO,mBAAmB,gBAAgB,MAAM,oBAAoB,KAAK;;AAG3E,SAAgB,gBACd,GAAG,MAC8C;AACjD,QAAO,oBAAoB,aAAa,eAAe;AAEvD,QAAO,mBAAmB,gBAAgB,MAAM,oBAAoB,KAAK;;AAG3E,SAAgB,cAAc;AAC5B,QAAO;;AAGT,SAAgB,eACd,GAAG,MAC6C;AAChD,QAAO,oBAAoB,aAAa,eAAe;AAEvD,QAAO,mBAAmB,eAAe,MAAM,oBAAoB,KAAK;;AAI1E,+BAA+B,iBAAiB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n ModuleFederation,\n type UserOptions,\n CurrentGlobal,\n getGlobalFederationConstructor,\n setGlobalFederationInstance,\n assert,\n setGlobalFederationConstructor,\n} from '@module-federation/runtime-core';\nimport { runtimeDescMap, RUNTIME_009 } from '@module-federation/error-codes';\nimport { getGlobalFederationInstance } from './utils';\n\nexport {\n loadScript,\n loadScriptNode,\n Module,\n getRemoteEntry,\n getRemoteInfo,\n registerGlobalPlugins,\n type ModuleFederationRuntimePlugin,\n type Federation,\n} from '@module-federation/runtime-core';\n\nexport { ModuleFederation };\n\nexport function createInstance(options: UserOptions) {\n // Retrieve debug constructor\n const ModuleFederationConstructor =\n getGlobalFederationConstructor() || ModuleFederation;\n const instance = new ModuleFederationConstructor({\n id: `${options.name}@${options.version || Date.now()}`,\n ...options,\n });\n setGlobalFederationInstance(instance);\n return instance;\n}\n\nlet FederationInstance: ModuleFederation | null = null;\nexport function init(options: UserOptions): ModuleFederation {\n // Retrieve the same instance with the same name\n const instance = getGlobalFederationInstance(options.name, options.version);\n const normalizedOptions = { ...options, id: options.id || '' };\n if (!instance) {\n FederationInstance = createInstance(normalizedOptions);\n return FederationInstance;\n } else {\n // Merge options\n instance.initOptions(normalizedOptions);\n if (!FederationInstance) {\n FederationInstance = instance;\n }\n return instance;\n }\n}\n\nexport function loadRemote<T>(\n ...args: Parameters<ModuleFederation['loadRemote']>\n): Promise<T | null> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n const loadRemote: typeof FederationInstance.loadRemote<T> =\n FederationInstance.loadRemote;\n // eslint-disable-next-line prefer-spread\n return loadRemote.apply(FederationInstance, args);\n}\n\nexport function loadShare<T>(\n ...args: Parameters<ModuleFederation['loadShare']>\n): Promise<false | (() => T | undefined)> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n const loadShare: typeof FederationInstance.loadShare<T> =\n FederationInstance.loadShare;\n return loadShare.apply(FederationInstance, args);\n}\n\nexport function loadShareSync<T>(\n ...args: Parameters<ModuleFederation['loadShareSync']>\n): () => T | never {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n const loadShareSync: typeof FederationInstance.loadShareSync<T> =\n FederationInstance.loadShareSync;\n // eslint-disable-next-line prefer-spread\n return loadShareSync.apply(FederationInstance, args);\n}\n\nexport function preloadRemote(\n ...args: Parameters<ModuleFederation['preloadRemote']>\n): ReturnType<ModuleFederation['preloadRemote']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.preloadRemote.apply(FederationInstance, args);\n}\n\nexport function registerRemotes(\n ...args: Parameters<ModuleFederation['registerRemotes']>\n): ReturnType<ModuleFederation['registerRemotes']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerRemotes.apply(FederationInstance, args);\n}\n\nexport function registerPlugins(\n ...args: Parameters<ModuleFederation['registerPlugins']>\n): ReturnType<ModuleFederation['registerRemotes']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerPlugins.apply(FederationInstance, args);\n}\n\nexport function getInstance(): ModuleFederation | null;\nexport function getInstance(\n finder: (instance: ModuleFederation) => boolean,\n): ModuleFederation | null;\nexport function getInstance(finder?: (instance: ModuleFederation) => boolean) {\n if (!finder) {\n return FederationInstance;\n }\n\n return CurrentGlobal.__FEDERATION__.__INSTANCES__.find(finder) || null;\n}\n\nexport function registerShared(\n ...args: Parameters<ModuleFederation['registerShared']>\n): ReturnType<ModuleFederation['registerShared']> {\n assert(FederationInstance, RUNTIME_009, runtimeDescMap);\n // eslint-disable-next-line prefer-spread\n return FederationInstance.registerShared.apply(FederationInstance, args);\n}\n\n// Inject for debug\nsetGlobalFederationConstructor(ModuleFederation);\n"],"mappings":";;;;;AAyBA,SAAgB,eAAe,SAAsB;CAInD,MAAM,WAAW,MADf,gCAAgC,KAAI,kBACW;EAC/C,IAAI,GAAG,QAAQ,KAAK,GAAG,QAAQ,WAAW,KAAK,KAAK;EACpD,GAAG;EACJ,CAAC;AACF,6BAA4B,SAAS;AACrC,QAAO;;AAGT,IAAI,qBAA8C;AAClD,SAAgB,KAAK,SAAwC;CAE3D,MAAM,WAAW,4BAA4B,QAAQ,MAAM,QAAQ,QAAQ;CAC3E,MAAM,oBAAoB;EAAE,GAAG;EAAS,IAAI,QAAQ,MAAM;EAAI;AAC9D,KAAI,CAAC,UAAU;AACb,uBAAqB,eAAe,kBAAkB;AACtD,SAAO;QACF;AAEL,WAAS,YAAY,kBAAkB;AACvC,MAAI,CAAC,mBACH,sBAAqB;AAEvB,SAAO;;;AAIX,SAAgB,WACd,GAAG,MACgB;AACnB,QAAO,oBAAoB,aAAa,eAAe;AAIvD,QAFE,mBAAmB,WAEH,MAAM,oBAAoB,KAAK;;AAGnD,SAAgB,UACd,GAAG,MACqC;AACxC,QAAO,oBAAoB,aAAa,eAAe;AAIvD,QADE,mBAAmB,UACJ,MAAM,oBAAoB,KAAK;;AAGlD,SAAgB,cACd,GAAG,MACc;AACjB,QAAO,oBAAoB,aAAa,eAAe;AAIvD,QAFE,mBAAmB,cAEA,MAAM,oBAAoB,KAAK;;AAGtD,SAAgB,cACd,GAAG,MAC4C;AAC/C,QAAO,oBAAoB,aAAa,eAAe;AAEvD,QAAO,mBAAmB,cAAc,MAAM,oBAAoB,KAAK;;AAGzE,SAAgB,gBACd,GAAG,MAC8C;AACjD,QAAO,oBAAoB,aAAa,eAAe;AAEvD,QAAO,mBAAmB,gBAAgB,MAAM,oBAAoB,KAAK;;AAG3E,SAAgB,gBACd,GAAG,MAC8C;AACjD,QAAO,oBAAoB,aAAa,eAAe;AAEvD,QAAO,mBAAmB,gBAAgB,MAAM,oBAAoB,KAAK;;AAO3E,SAAgB,YAAY,QAAkD;AAC5E,KAAI,CAAC,OACH,QAAO;AAGT,QAAO,cAAc,eAAe,cAAc,KAAK,OAAO,IAAI;;AAGpE,SAAgB,eACd,GAAG,MAC6C;AAChD,QAAO,oBAAoB,aAAa,eAAe;AAEvD,QAAO,mBAAmB,eAAe,MAAM,oBAAoB,KAAK;;AAI1E,+BAA+B,iBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/runtime",
3
- "version": "2.3.3",
3
+ "version": "2.5.0",
4
4
  "type": "module",
5
5
  "author": "zhouxiao <codingzx@gmail.com>",
6
6
  "main": "./dist/index.cjs",
@@ -86,9 +86,9 @@
86
86
  }
87
87
  },
88
88
  "dependencies": {
89
- "@module-federation/sdk": "2.3.3",
90
- "@module-federation/error-codes": "2.3.3",
91
- "@module-federation/runtime-core": "2.3.3"
89
+ "@module-federation/sdk": "2.5.0",
90
+ "@module-federation/error-codes": "2.5.0",
91
+ "@module-federation/runtime-core": "2.5.0"
92
92
  },
93
93
  "scripts": {
94
94
  "build": "tsdown --config tsdown.config.ts",