@furystack/shades-mfe 1.0.24 → 1.0.27
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/CHANGELOG.md +26 -3
- package/README.md +123 -4
- package/esm/micro-frontend.spec.js.map +1 -1
- package/package.json +17 -12
- package/src/micro-frontend.spec.tsx +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
## [1.0.27] - 2026-01-26
|
|
4
|
+
|
|
5
|
+
### 🔧 Chores
|
|
6
|
+
|
|
7
|
+
- Standardized author format, improved keywords, removed obsolete `gitHead`, added `engines` (Node 22+) and `sideEffects: false`
|
|
8
|
+
|
|
9
|
+
## [1.0.26] - 2026-01-26
|
|
10
|
+
|
|
11
|
+
### ⬆️ Dependencies
|
|
12
|
+
|
|
13
|
+
- Updated `@furystack/inject` with fix for singleton injector reference being overwritten by child injectors
|
|
14
|
+
|
|
15
|
+
## [1.0.25] - 2026-01-22
|
|
16
|
+
|
|
17
|
+
### ⬆️ Dependencies
|
|
18
|
+
|
|
19
|
+
- Dependency updates
|
|
20
|
+
|
|
21
|
+
### 📚 Documentation
|
|
22
|
+
|
|
23
|
+
- Expanded README with detailed micro-frontend setup and configuration examples
|
|
24
|
+
|
|
25
|
+
### 🔧 Chores
|
|
26
|
+
|
|
27
|
+
- Migrated to centralized changelog management system
|
package/README.md
CHANGED
|
@@ -1,7 +1,126 @@
|
|
|
1
|
-
# shades-mfe
|
|
1
|
+
# @furystack/shades-mfe
|
|
2
2
|
|
|
3
|
-
Micro
|
|
3
|
+
Micro-frontend support for FuryStack Shades. This package allows you to dynamically load and render independent micro-frontend modules within your Shades application.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Installation
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```bash
|
|
8
|
+
npm install @furystack/shades-mfe
|
|
9
|
+
# or
|
|
10
|
+
yarn add @furystack/shades-mfe
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
### Creating a Shades Micro-Frontend
|
|
16
|
+
|
|
17
|
+
Use `createShadesMicroFrontend` to wrap a Shades component as a micro-frontend module:
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
// In your MFE module (e.g., remote-app/index.tsx)
|
|
21
|
+
import { Shade } from '@furystack/shades'
|
|
22
|
+
import { createShadesMicroFrontend } from '@furystack/shades-mfe'
|
|
23
|
+
|
|
24
|
+
type MyMfeApi = {
|
|
25
|
+
greeting: string
|
|
26
|
+
onAction: () => void
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const MyMfeComponent = Shade<MyMfeApi>({
|
|
30
|
+
shadowDomName: 'my-mfe-component',
|
|
31
|
+
render: ({ props }) => (
|
|
32
|
+
<div>
|
|
33
|
+
<h1>{props.greeting}</h1>
|
|
34
|
+
<button onclick={props.onAction}>Click me</button>
|
|
35
|
+
</div>
|
|
36
|
+
),
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
export default createShadesMicroFrontend(MyMfeComponent)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Loading a Micro-Frontend in the Host App
|
|
43
|
+
|
|
44
|
+
Use the `MicroFrontend` component to load and render your micro-frontend:
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
import { Shade } from '@furystack/shades'
|
|
48
|
+
import { MicroFrontend } from '@furystack/shades-mfe'
|
|
49
|
+
|
|
50
|
+
type MyMfeApi = {
|
|
51
|
+
greeting: string
|
|
52
|
+
onAction: () => void
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const HostApp = Shade({
|
|
56
|
+
shadowDomName: 'host-app',
|
|
57
|
+
render: () => (
|
|
58
|
+
<MicroFrontend<MyMfeApi>
|
|
59
|
+
api={{
|
|
60
|
+
greeting: 'Hello from host!',
|
|
61
|
+
onAction: () => console.log('Action triggered'),
|
|
62
|
+
}}
|
|
63
|
+
loaderCallback={() => import('http://localhost:3001/my-mfe.js')}
|
|
64
|
+
loader={<div>Loading...</div>}
|
|
65
|
+
error={(error, retry) => (
|
|
66
|
+
<div>
|
|
67
|
+
<p>Failed to load: {String(error)}</p>
|
|
68
|
+
<button onclick={retry}>Retry</button>
|
|
69
|
+
</div>
|
|
70
|
+
)}
|
|
71
|
+
/>
|
|
72
|
+
),
|
|
73
|
+
})
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Creating a Custom Micro-Frontend
|
|
77
|
+
|
|
78
|
+
For non-Shades micro-frontends or more control over the lifecycle:
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
import { createCustomMicroFrontend } from '@furystack/shades-mfe'
|
|
82
|
+
|
|
83
|
+
type MyApi = {
|
|
84
|
+
data: string
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export default createCustomMicroFrontend<MyApi>({
|
|
88
|
+
onCreate: ({ api, rootElement, injector }) => {
|
|
89
|
+
// Initialize your custom component
|
|
90
|
+
rootElement.innerHTML = `<div>${api.data}</div>`
|
|
91
|
+
},
|
|
92
|
+
onDestroy: ({ api, injector }) => {
|
|
93
|
+
// Cleanup when the MFE is unmounted
|
|
94
|
+
},
|
|
95
|
+
})
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## API Reference
|
|
99
|
+
|
|
100
|
+
### `MicroFrontend<TApi>`
|
|
101
|
+
|
|
102
|
+
Component for loading and displaying micro-frontends.
|
|
103
|
+
|
|
104
|
+
**Props:**
|
|
105
|
+
|
|
106
|
+
| Prop | Type | Description |
|
|
107
|
+
| ---------------- | ------------------------------------------------------------------------ | ------------------------------------------- |
|
|
108
|
+
| `api` | `TApi` | The API object passed to the micro-frontend |
|
|
109
|
+
| `loaderCallback` | `() => Promise<CreateMicroFrontendService<TApi>>` | Async function to load the MFE module |
|
|
110
|
+
| `loader` | `JSX.Element` (optional) | Element to display while loading |
|
|
111
|
+
| `error` | `(error: unknown, retry: () => Promise<void>) => JSX.Element` (optional) | Error handler with retry capability |
|
|
112
|
+
|
|
113
|
+
### `createShadesMicroFrontend<TApi>(Component)`
|
|
114
|
+
|
|
115
|
+
Creates a micro-frontend service from a Shades component.
|
|
116
|
+
|
|
117
|
+
### `createCustomMicroFrontend<TApi>(options)`
|
|
118
|
+
|
|
119
|
+
Creates a micro-frontend service with custom create/destroy callbacks.
|
|
120
|
+
|
|
121
|
+
**Options:**
|
|
122
|
+
|
|
123
|
+
| Option | Type | Description |
|
|
124
|
+
| ----------- | ------------------------------------- | -------------------------------- |
|
|
125
|
+
| `onCreate` | `CreateMfeCallback<TApi>` | Called when the MFE is mounted |
|
|
126
|
+
| `onDestroy` | `DestroyMfeCallback<TApi>` (optional) | Called when the MFE is unmounted |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"micro-frontend.spec.js","sourceRoot":"","sources":["../src/micro-frontend.spec.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"micro-frontend.spec.js","sourceRoot":"","sources":["../src/micro-frontend.spec.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/shades-mfe",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.27",
|
|
4
|
+
"description": "Micro-Frontend support for FuryStack Shades",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"build
|
|
7
|
+
"build": "tsc --outDir ./esm"
|
|
8
8
|
},
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
11
|
+
"types": "./esm/index.d.ts",
|
|
11
12
|
"import": "./esm/index.js"
|
|
12
13
|
}
|
|
13
14
|
},
|
|
14
15
|
"files": [
|
|
15
16
|
"esm",
|
|
16
|
-
"types",
|
|
17
17
|
"src"
|
|
18
18
|
],
|
|
19
19
|
"repository": {
|
|
@@ -22,26 +22,31 @@
|
|
|
22
22
|
},
|
|
23
23
|
"keywords": [
|
|
24
24
|
"FuryStack",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
25
|
+
"Shades",
|
|
26
|
+
"MFE",
|
|
27
|
+
"micro-frontend",
|
|
28
|
+
"module federation"
|
|
27
29
|
],
|
|
28
30
|
"publishConfig": {
|
|
29
31
|
"access": "public"
|
|
30
32
|
},
|
|
31
|
-
"author": "gallay.lajos@gmail.com",
|
|
33
|
+
"author": "Gallay Lajos <gallay.lajos@gmail.com>",
|
|
32
34
|
"license": "GPL-2.0",
|
|
33
35
|
"bugs": {
|
|
34
36
|
"url": "https://github.com/furystack/furystack/issues"
|
|
35
37
|
},
|
|
36
38
|
"homepage": "https://github.com/furystack/furystack",
|
|
37
39
|
"dependencies": {
|
|
38
|
-
"@furystack/inject": "^12.0.
|
|
39
|
-
"@furystack/shades": "^11.0.
|
|
40
|
+
"@furystack/inject": "^12.0.28",
|
|
41
|
+
"@furystack/shades": "^11.0.35"
|
|
40
42
|
},
|
|
41
43
|
"devDependencies": {
|
|
42
|
-
"@types/node": "^25.0.
|
|
44
|
+
"@types/node": "^25.0.10",
|
|
43
45
|
"typescript": "^5.9.3",
|
|
44
|
-
"vitest": "^4.0.
|
|
46
|
+
"vitest": "^4.0.17"
|
|
45
47
|
},
|
|
46
|
-
"
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=22.0.0"
|
|
50
|
+
},
|
|
51
|
+
"sideEffects": false
|
|
47
52
|
}
|
|
@@ -151,7 +151,7 @@ describe('<MicroFrontend /> component', () => {
|
|
|
151
151
|
)
|
|
152
152
|
document.querySelector('button')!.click()
|
|
153
153
|
await sleepAsync(10)
|
|
154
|
-
expect(destroy).toHaveBeenCalledWith({ api: { value }, injector: expect.any(Injector) })
|
|
154
|
+
expect(destroy).toHaveBeenCalledWith({ api: { value }, injector: expect.any(Injector) as Injector })
|
|
155
155
|
expect(document.body.innerHTML).toBe(
|
|
156
156
|
`<div id="root"><mfe-test-example-w-destroy-host><button>Remove MFE</button></mfe-test-example-w-destroy-host></div>`,
|
|
157
157
|
)
|