@bleedingdev/modern-js-create 3.2.0-ultramodern.48 → 3.2.0-ultramodern.49

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 (2) hide show
  1. package/dist/index.js +36 -10
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -2913,7 +2913,20 @@ export default function ShellCartPage() {
2913
2913
  }
2914
2914
  function createShellRemoteComponents() {
2915
2915
  return `import { createLazyComponent } from '@module-federation/modern-js-v3/react';
2916
- import { getInstance } from '@module-federation/modern-js-v3/runtime';
2916
+ import { getInstance, loadRemote } from '@module-federation/modern-js-v3/runtime';
2917
+ import type { JSX } from 'react';
2918
+
2919
+ type RemoteComponentModule = {
2920
+ default: () => JSX.Element;
2921
+ };
2922
+
2923
+ const loadRemoteComponent = async (specifier: string) => {
2924
+ const module = await loadRemote<RemoteComponentModule>(specifier);
2925
+ if (!module) {
2926
+ throw new Error(\`Remote module unavailable: \${specifier}\`);
2927
+ }
2928
+ return module;
2929
+ };
2917
2930
 
2918
2931
  const remoteFallback =
2919
2932
  ({ error }: { error: Error }) =>
@@ -2923,42 +2936,42 @@ export const Header = createLazyComponent({
2923
2936
  export: 'default',
2924
2937
  fallback: remoteFallback,
2925
2938
  instance: getInstance(),
2926
- loader: () => import('explore/Header'),
2939
+ loader: () => loadRemoteComponent('explore/Header'),
2927
2940
  loading: null,
2928
2941
  });
2929
2942
  export const StorePicker = createLazyComponent({
2930
2943
  export: 'default',
2931
2944
  fallback: remoteFallback,
2932
2945
  instance: getInstance(),
2933
- loader: () => import('explore/StorePicker'),
2946
+ loader: () => loadRemoteComponent('explore/StorePicker'),
2934
2947
  loading: null,
2935
2948
  });
2936
2949
  export const Recommendations = createLazyComponent({
2937
2950
  export: 'default',
2938
2951
  fallback: remoteFallback,
2939
2952
  instance: getInstance(),
2940
- loader: () => import('explore/Recommendations'),
2953
+ loader: () => loadRemoteComponent('explore/Recommendations'),
2941
2954
  loading: null,
2942
2955
  });
2943
2956
  export const ProductPage = createLazyComponent({
2944
2957
  export: 'default',
2945
2958
  fallback: remoteFallback,
2946
2959
  instance: getInstance(),
2947
- loader: () => import('decide/ProductPage'),
2960
+ loader: () => loadRemoteComponent('decide/ProductPage'),
2948
2961
  loading: null,
2949
2962
  });
2950
2963
  export const MiniCart = createLazyComponent({
2951
2964
  export: 'default',
2952
2965
  fallback: remoteFallback,
2953
2966
  instance: getInstance(),
2954
- loader: () => import('checkout/MiniCart'),
2967
+ loader: () => loadRemoteComponent('checkout/MiniCart'),
2955
2968
  loading: null,
2956
2969
  });
2957
2970
  export const CartPage = createLazyComponent({
2958
2971
  export: 'default',
2959
2972
  fallback: remoteFallback,
2960
2973
  instance: getInstance(),
2961
- loader: () => import('checkout/CartPage'),
2974
+ loader: () => loadRemoteComponent('checkout/CartPage'),
2962
2975
  loading: null,
2963
2976
  });
2964
2977
  `;
@@ -3260,7 +3273,20 @@ export default function ${componentName}() {
3260
3273
  }
3261
3274
  function createDecideRemoteComponents() {
3262
3275
  return `import { createLazyComponent } from '@module-federation/modern-js-v3/react';
3263
- import { getInstance } from '@module-federation/modern-js-v3/runtime';
3276
+ import { getInstance, loadRemote } from '@module-federation/modern-js-v3/runtime';
3277
+ import type { JSX } from 'react';
3278
+
3279
+ type RemoteComponentModule = {
3280
+ default: () => JSX.Element;
3281
+ };
3282
+
3283
+ const loadRemoteComponent = async (specifier: string) => {
3284
+ const module = await loadRemote<RemoteComponentModule>(specifier);
3285
+ if (!module) {
3286
+ throw new Error(\`Remote module unavailable: \${specifier}\`);
3287
+ }
3288
+ return module;
3289
+ };
3264
3290
 
3265
3291
  const remoteFallback =
3266
3292
  ({ error }: { error: Error }) =>
@@ -3270,14 +3296,14 @@ export const AddToCart = createLazyComponent({
3270
3296
  export: 'default',
3271
3297
  fallback: remoteFallback,
3272
3298
  instance: getInstance(),
3273
- loader: () => import('checkout/AddToCart'),
3299
+ loader: () => loadRemoteComponent('checkout/AddToCart'),
3274
3300
  loading: null,
3275
3301
  });
3276
3302
  export const Recommendations = createLazyComponent({
3277
3303
  export: 'default',
3278
3304
  fallback: remoteFallback,
3279
3305
  instance: getInstance(),
3280
- loader: () => import('explore/Recommendations'),
3306
+ loader: () => loadRemoteComponent('explore/Recommendations'),
3281
3307
  loading: null,
3282
3308
  });
3283
3309
  `;
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "engines": {
22
22
  "node": ">=20"
23
23
  },
24
- "version": "3.2.0-ultramodern.48",
24
+ "version": "3.2.0-ultramodern.49",
25
25
  "types": "./dist/types/index.d.ts",
26
26
  "main": "./dist/index.js",
27
27
  "bin": {
@@ -41,7 +41,7 @@
41
41
  "@types/node": "^25.9.1",
42
42
  "@typescript/native-preview": "7.0.0-dev.20260527.2",
43
43
  "tsx": "^4.22.3",
44
- "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.2.0-ultramodern.48"
44
+ "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.2.0-ultramodern.49"
45
45
  },
46
46
  "publishConfig": {
47
47
  "registry": "https://registry.npmjs.org/",
@@ -54,6 +54,6 @@
54
54
  "start": "node ./dist/index.js"
55
55
  },
56
56
  "ultramodern": {
57
- "frameworkVersion": "3.2.0-ultramodern.48"
57
+ "frameworkVersion": "3.2.0-ultramodern.49"
58
58
  }
59
59
  }