@appshell/loader 0.1.0-alpha.1 → 0.2.0-alpha.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/CHANGELOG.md +24 -0
- package/README.md +6 -6
- package/__tests__/remoteLoader.spec.ts +28 -9
- package/dist/main.js +1 -1
- package/dist/types/config/src/deregister.d.ts +3 -0
- package/dist/types/config/src/deregister.d.ts.map +1 -0
- package/dist/types/config/src/generate.env.d.ts +1 -1
- package/dist/types/config/src/generate.env.d.ts.map +1 -1
- package/dist/types/config/src/generate.global-config.d.ts +7 -0
- package/dist/types/config/src/generate.global-config.d.ts.map +1 -0
- package/dist/types/config/src/generate.manifest.d.ts +8 -0
- package/dist/types/config/src/generate.manifest.d.ts.map +1 -0
- package/dist/types/config/src/index.d.ts +4 -4
- package/dist/types/config/src/index.d.ts.map +1 -1
- package/dist/types/config/src/mappers/appshell.config.d.ts +2 -2
- package/dist/types/config/src/mappers/appshell.config.d.ts.map +1 -1
- package/dist/types/config/src/register.d.ts +1 -1
- package/dist/types/config/src/register.d.ts.map +1 -1
- package/dist/types/config/src/types.d.ts +16 -0
- package/dist/types/config/src/types.d.ts.map +1 -1
- package/dist/types/config/src/utils/load.d.ts.map +1 -1
- package/dist/types/config/src/utils/loadJson.d.ts +6 -2
- package/dist/types/config/src/utils/loadJson.d.ts.map +1 -1
- package/dist/types/config/src/validators/{appshell.manifest.d.ts → AppshellGlobalConfigValidator.d.ts} +1 -1
- package/dist/types/config/src/validators/AppshellGlobalConfigValidator.d.ts.map +1 -0
- package/dist/types/config/src/validators/{merge.manifests.d.ts → AppshellManifestValidator.d.ts} +1 -1
- package/dist/types/config/src/validators/AppshellManifestValidator.d.ts.map +1 -0
- package/dist/types/config/src/validators/{appshell.config.d.ts → AppshellTemplateValidator.d.ts} +1 -1
- package/dist/types/config/src/validators/AppshellTemplateValidator.d.ts.map +1 -0
- package/dist/types/config/src/validators/index.d.ts +3 -3
- package/dist/types/config/src/validators/index.d.ts.map +1 -1
- package/dist/types/loader/src/remoteLoader.d.ts +3 -2
- package/dist/types/loader/src/remoteLoader.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/remoteLoader.ts +5 -3
- package/dist/types/config/src/generate.d.ts +0 -9
- package/dist/types/config/src/generate.d.ts.map +0 -1
- package/dist/types/config/src/generate.index.d.ts +0 -4
- package/dist/types/config/src/generate.index.d.ts.map +0 -1
- package/dist/types/config/src/generate.metadata.d.ts +0 -4
- package/dist/types/config/src/generate.metadata.d.ts.map +0 -1
- package/dist/types/config/src/validators/appshell.config.d.ts.map +0 -1
- package/dist/types/config/src/validators/appshell.manifest.d.ts.map +0 -1
- package/dist/types/config/src/validators/merge.manifests.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.2.0-alpha.0](https://github.com/navaris/appshell/compare/@appshell/loader@0.1.0...@appshell/loader@0.2.0-alpha.0) (2023-08-23)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* consolidate runtime artifacts ([#26](https://github.com/navaris/appshell/issues/26)) ([a29479a](https://github.com/navaris/appshell/commit/a29479a49f0c5ec1273c9f8e4c7384096f2d4ba0))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [0.1.0](https://github.com/navaris/appshell/compare/@appshell/loader@0.1.0-alpha.1...@appshell/loader@0.1.0) (2023-07-11)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* registry projection, enable env overwrite, refactor docker workflow, consolidate env names ([33a28fe](https://github.com/navaris/appshell/commit/33a28fe76b58e05c5b6b6b33d4b402e52bb29e70))
|
|
23
|
+
* rename @appshell/react-federated-component package to @appshell/react ([0b74498](https://github.com/navaris/appshell/commit/0b74498bf17ba73db4d936c8a012af1d3b111a28))
|
|
24
|
+
* replace config intermediate file with template ([9b79e65](https://github.com/navaris/appshell/commit/9b79e65b355686a0cca273c89c7164bb031e8437))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
# [0.1.0-alpha.1](https://github.com/navaris/appshell/compare/@appshell/loader@0.0.3...@appshell/loader@0.1.0-alpha.1) (2023-07-05)
|
|
7
31
|
|
|
8
32
|
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
# @appshell/loader
|
|
13
13
|
|
|
14
|
-
Dynamically load federated components for Webpack Module federation
|
|
14
|
+
Dynamically load federated components for micro-frontends built with Appshell and Webpack Module federation.
|
|
15
15
|
|
|
16
16
|
Working examples can be found [here](https://github.com/navaris/appshell/tree/main/examples).
|
|
17
17
|
|
|
@@ -35,26 +35,26 @@ or
|
|
|
35
35
|
pnpm add -D @appshell/loader
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
The default export from this package is the loader function. It is given
|
|
38
|
+
The default export from this package is the loader function. It is given the global appshell configuration, and returns an async function that can be called to dynamically load federated components.
|
|
39
39
|
|
|
40
40
|
```ts
|
|
41
41
|
import componentLoader from '@appshell/loader';
|
|
42
42
|
|
|
43
|
-
const load = componentLoader(
|
|
43
|
+
const load = componentLoader(config);
|
|
44
44
|
|
|
45
45
|
const Component = load<MyComponent>('MyModule/MyComponent');
|
|
46
46
|
|
|
47
47
|
render(<Component />);
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
**Where does the
|
|
50
|
+
**Where does the global appshell configuration come from?**
|
|
51
51
|
|
|
52
52
|
> See [@appshell/cli](https://www.npmjs.com/package/@appshell/cli)
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
|
-
appshell generate
|
|
55
|
+
appshell generate global-config --registry appshell_registry_path
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
**Do you have any framework specific loaders?**
|
|
59
59
|
|
|
60
|
-
> See [@appshell/react
|
|
60
|
+
> See [@appshell/react](https://www.npmjs.com/package/@appshell/react) for a `React` loader.
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/** @jest-environment jsdom */
|
|
2
2
|
import { AppshellManifest } from '@appshell/config';
|
|
3
|
+
import { AppshellRegister } from '@appshell/config/src/types';
|
|
4
|
+
import fetch, { enableFetchMocks } from 'jest-fetch-mock';
|
|
3
5
|
import * as fetchDynamicScript from '../src/fetchDynamicScript';
|
|
4
6
|
import * as loadFederatedComponent from '../src/loadFederatedComponent';
|
|
5
7
|
import remoteLoader from '../src/remoteLoader';
|
|
6
8
|
|
|
9
|
+
enableFetchMocks();
|
|
10
|
+
|
|
7
11
|
jest.mock('../src/fetchDynamicScript');
|
|
8
12
|
jest.mock('../src/loadFederatedComponent');
|
|
9
13
|
|
|
@@ -14,25 +18,39 @@ describe('remoteLoader', () => {
|
|
|
14
18
|
id: 'test-component',
|
|
15
19
|
scope: 'TestModule',
|
|
16
20
|
module: './TestComponent',
|
|
17
|
-
|
|
21
|
+
manifestUrl: 'http://test.com/appshell.manifest.json',
|
|
22
|
+
remoteEntryUrl: 'http://test.com/remoteEntry.js',
|
|
18
23
|
metadata: {},
|
|
19
24
|
},
|
|
20
25
|
},
|
|
21
26
|
modules: {},
|
|
22
27
|
environment: {},
|
|
23
28
|
};
|
|
29
|
+
const register: AppshellRegister = {
|
|
30
|
+
index: {
|
|
31
|
+
'TestModule/TestComponent': 'http://test.com/appshell.manifest.json',
|
|
32
|
+
},
|
|
33
|
+
metadata: {},
|
|
34
|
+
};
|
|
24
35
|
|
|
25
|
-
|
|
36
|
+
beforeEach(() => {
|
|
37
|
+
fetch.mockIf('http://test.com/appshell.manifest.json', () =>
|
|
38
|
+
Promise.resolve({ ok: true, body: JSON.stringify(manifest) }),
|
|
39
|
+
);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('should return the federated component if it is found in the registry', async () => {
|
|
26
43
|
const ExpectedComponent = () => 'test component';
|
|
27
44
|
jest.spyOn(fetchDynamicScript, 'default').mockReturnValueOnce(Promise.resolve(true));
|
|
28
45
|
jest
|
|
29
46
|
.spyOn(loadFederatedComponent, 'default')
|
|
30
47
|
.mockResolvedValue(Promise.resolve(ExpectedComponent));
|
|
31
48
|
|
|
32
|
-
const loadRemote = remoteLoader(
|
|
33
|
-
const ActualComponent = await loadRemote('TestModule/TestComponent');
|
|
49
|
+
const loadRemote = remoteLoader(register);
|
|
50
|
+
const [ActualComponent, actualManifest] = await loadRemote('TestModule/TestComponent');
|
|
34
51
|
|
|
35
52
|
expect(ActualComponent).toEqual(ExpectedComponent);
|
|
53
|
+
expect(actualManifest).toEqual(manifest);
|
|
36
54
|
});
|
|
37
55
|
|
|
38
56
|
it('should not fetch remote entry more than once', async () => {
|
|
@@ -44,7 +62,7 @@ describe('remoteLoader', () => {
|
|
|
44
62
|
.spyOn(loadFederatedComponent, 'default')
|
|
45
63
|
.mockResolvedValue(Promise.resolve(ExpectedComponent));
|
|
46
64
|
|
|
47
|
-
const loadRemote = remoteLoader(
|
|
65
|
+
const loadRemote = remoteLoader(register);
|
|
48
66
|
|
|
49
67
|
await loadRemote('TestModule/TestComponent');
|
|
50
68
|
await loadRemote('TestModule/TestComponent');
|
|
@@ -53,21 +71,22 @@ describe('remoteLoader', () => {
|
|
|
53
71
|
expect(fetchDynamicScriptSpy).toHaveBeenCalledTimes(1);
|
|
54
72
|
});
|
|
55
73
|
|
|
56
|
-
it('should throw if remote key is not found in the
|
|
74
|
+
it('should throw if remote key is not found in the registry', async () => {
|
|
57
75
|
const ExpectedComponent = () => 'test component';
|
|
58
76
|
jest.spyOn(loadFederatedComponent, 'default').mockResolvedValue(ExpectedComponent);
|
|
59
77
|
|
|
60
|
-
const loadRemote = remoteLoader(
|
|
78
|
+
const loadRemote = remoteLoader(register);
|
|
61
79
|
|
|
62
80
|
await expect(loadRemote('TestModule/DoesNotExist')).rejects.toThrow(
|
|
63
|
-
/Remote resource not found in
|
|
81
|
+
/Remote resource not found in registry/i,
|
|
64
82
|
);
|
|
65
83
|
});
|
|
66
84
|
|
|
67
85
|
it('should throw if load federated component fails', async () => {
|
|
86
|
+
jest.spyOn(fetchDynamicScript, 'default').mockReturnValueOnce(Promise.resolve(true));
|
|
68
87
|
jest.spyOn(loadFederatedComponent, 'default').mockRejectedValue(new Error('failed'));
|
|
69
88
|
|
|
70
|
-
const loadRemote = remoteLoader(
|
|
89
|
+
const loadRemote = remoteLoader(register);
|
|
71
90
|
|
|
72
91
|
await expect(loadRemote('TestModule/TestComponent')).rejects.toThrow(
|
|
73
92
|
/Failed to load component/i,
|
package/dist/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var t=o();for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}(self,(()=>(()=>{"use strict";var e={d:(o,t)=>{for(var r in t)e.o(t,r)&&!e.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:t[r]})},o:(e,o)=>Object.prototype.hasOwnProperty.call(e,o),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}};(()=>{e.S={};var o={},t={};e.I=(r,n)=>{n||(n=[]);var a=t[r];if(a||(a=t[r]={}),!(n.indexOf(a)>=0)){if(n.push(a),o[r])return o[r];e.o(e.S,r)||(e.S[r]={}),e.S[r];var d=[];return o[r]=d.length?Promise.all(d).then((()=>o[r]=1)):1}}})();var o={};e.r(o),e.d(o,{default:()=>a});const t=new Set,r=new Set,n=new Map,a=o=>async a=>{let d;const c=o[a];if(!c)throw new Error(`Remote resource not found in registry. Expected: ${a}`);try{const o=await(async e=>{if(n.has(e))return n.get(e);n.set(e,void 0);const o=await fetch(e);if(o.ok)return o.json();const t=await o.text();throw new Error(`Failed to get manifest from ${e}. ${t}`)})(c);if(o){n.set(c,o);const i=o.remotes[a];if(window[`__appshell_env__${i.scope}`]=o.environment[i.scope]||{},r.has(i.remoteEntryUrl)||await(async e=>{const o=document.createElement("script");return new Promise(((r,n)=>{t.has(e)?r(!1):(t.add(e),o.src=e,o.type="text/javascript",o.async=!0,o.onload=()=>{console.debug(`Remote entry fetched from '${e}'.`),r(!0)},o.onerror=()=>{const o=`Failed to fetch remote entry from '${e}'.`;console.error(o),n(o)},document.head.appendChild(o))})).finally((()=>{document.head.contains(o)&&document.head.removeChild(o)}))})(i.remoteEntryUrl))return r.add(i.remoteEntryUrl),d=await(async(o,t,r="default")=>{console.debug(`loading federated component: { scope: ${o}, module: ${t}, shareScope: ${r} }`),await e.I(r);const n=window[o];if(!n)throw new Error(`Failed to find module container ${o}`);await n.init(e.S[r]);const a=await n.get(t);if(!a)throw new Error(`Invalid factory produced by container for module ${t}.`);const d=a();return console.debug(`federated component loaded: { scope: ${o}, module: ${t}, shareScope: ${r} }`),d.default})(i.scope,i.module,i.shareScope),[d,o]}return[null,null]}catch(e){throw new Error(`Failed to load component '${a}'. ${e?.toString()}`)}};return o})()));
|
|
1
|
+
!function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var t=o();for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}(self,(()=>(()=>{"use strict";var e={d:(o,t)=>{for(var r in t)e.o(t,r)&&!e.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:t[r]})},o:(e,o)=>Object.prototype.hasOwnProperty.call(e,o),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}};(()=>{e.S={};var o={},t={};e.I=(r,n)=>{n||(n=[]);var a=t[r];if(a||(a=t[r]={}),!(n.indexOf(a)>=0)){if(n.push(a),o[r])return o[r];e.o(e.S,r)||(e.S[r]={}),e.S[r];var d=[];return o[r]=d.length?Promise.all(d).then((()=>o[r]=1)):1}}})();var o={};e.r(o),e.d(o,{default:()=>a});const t=new Set,r=new Set,n=new Map,a=o=>async a=>{let d;const c=o.index[a];if(!c)throw new Error(`Remote resource not found in registry. Expected: ${a}`);try{const o=await(async e=>{if(n.has(e))return n.get(e);n.set(e,void 0);const o=await fetch(e);if(o.ok)return o.json();const t=await o.text();throw new Error(`Failed to get manifest from ${e}. ${t}`)})(c);if(o){n.set(c,o);const i=o.remotes[a];if(window[`__appshell_env__${i.scope}`]=o.environment[i.scope]||{},r.has(i.remoteEntryUrl)||await(async e=>{const o=document.createElement("script");return new Promise(((r,n)=>{t.has(e)?r(!1):(t.add(e),o.src=e,o.type="text/javascript",o.async=!0,o.onload=()=>{console.debug(`Remote entry fetched from '${e}'.`),r(!0)},o.onerror=()=>{const o=`Failed to fetch remote entry from '${e}'.`;console.error(o),n(o)},document.head.appendChild(o))})).finally((()=>{document.head.contains(o)&&document.head.removeChild(o)}))})(i.remoteEntryUrl))return r.add(i.remoteEntryUrl),d=await(async(o,t,r="default")=>{console.debug(`loading federated component: { scope: ${o}, module: ${t}, shareScope: ${r} }`),await e.I(r);const n=window[o];if(!n)throw new Error(`Failed to find module container ${o}`);await n.init(e.S[r]);const a=await n.get(t);if(!a)throw new Error(`Invalid factory produced by container for module ${t}.`);const d=a();return console.debug(`federated component loaded: { scope: ${o}, module: ${t}, shareScope: ${r} }`),d.default})(i.scope,i.module,i.shareScope),[d,o]}return[null,null]}catch(e){throw new Error(`Failed to load component '${a}'. ${e?.toString()}`)}};return o})()));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deregister.d.ts","sourceRoot":"","sources":["../../../../../config/src/deregister.ts"],"names":[],"mappings":"qCAoGkC,MAAM,YAAY,MAAM;AAA1D,wBAeE"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const _default: (env: string, prefix?: string) => Promise<Map<string, string
|
|
1
|
+
declare const _default: (env: string, prefix?: string, overwrite?: boolean) => Promise<Map<string, string>>;
|
|
2
2
|
export default _default;
|
|
3
3
|
//# sourceMappingURL=generate.env.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.env.d.ts","sourceRoot":"","sources":["../../../../../config/src/generate.env.ts"],"names":[],"mappings":"8BAO2B,MAAM;AAAjC,
|
|
1
|
+
{"version":3,"file":"generate.env.d.ts","sourceRoot":"","sources":["../../../../../config/src/generate.env.ts"],"names":[],"mappings":"8BAO2B,MAAM;AAAjC,wBA8BK"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AppshellGlobalConfig } from './types';
|
|
2
|
+
type GenerateGlobalConfigOptions = {
|
|
3
|
+
insecure: boolean;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: (registries: string[], options?: GenerateGlobalConfigOptions) => Promise<AppshellGlobalConfig>;
|
|
6
|
+
export default _default;
|
|
7
|
+
//# sourceMappingURL=generate.global-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.global-config.d.ts","sourceRoot":"","sources":["../../../../../config/src/generate.global-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAK/C,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;qCAGY,MAAM,EAAE,YACX,2BAA2B,KACnC,QAAQ,oBAAoB,CAAC;AAHhC,wBAuCE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates an appshell manifest
|
|
3
|
+
* @param templatePath path of the appshell manifest template to compile into an appshell manifest
|
|
4
|
+
* @returns an appshell manifest
|
|
5
|
+
*/
|
|
6
|
+
declare const _default: <TMetadata extends Record<string, unknown>>(templatePath: string) => Promise<import("./types").AppshellManifest<TMetadata> | null>;
|
|
7
|
+
export default _default;
|
|
8
|
+
//# sourceMappingURL=generate.manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.manifest.d.ts","sourceRoot":"","sources":["../../../../../config/src/generate.manifest.ts"],"names":[],"mappings":"AAOA;;;;GAIG;kFAC4E,MAAM;AAArF,wBAaE"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* @appshell/config package API
|
|
3
3
|
*/
|
|
4
4
|
export { default as configmap } from './configmap';
|
|
5
|
-
export { default as
|
|
5
|
+
export { default as deregister } from './deregister';
|
|
6
6
|
export { default as generateEnv } from './generate.env';
|
|
7
|
-
export { default as
|
|
8
|
-
export { default as
|
|
7
|
+
export { default as generateGlobalConfig } from './generate.global-config';
|
|
8
|
+
export { default as generateManifest } from './generate.manifest';
|
|
9
9
|
export { default as register } from './register';
|
|
10
|
-
export type { AppshellConfig, AppshellConfigRemote, AppshellIndex, AppshellManifest, AppshellRemote, Schema, } from './types';
|
|
10
|
+
export type { AppshellConfig, AppshellConfigRemote, AppshellGlobalConfig, AppshellIndex, AppshellManifest, AppshellRemote, AppshellTemplate, Metadata, Schema, } from './types';
|
|
11
11
|
export * as utils from './utils';
|
|
12
12
|
export * as validators from './validators';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../config/src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../config/src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const toAppshellManifest: <TMetadata extends Record<string, unknown>>(
|
|
1
|
+
import { AppshellManifest, AppshellTemplate, ConfigMap } from '../types';
|
|
2
|
+
export declare const toAppshellManifest: <TMetadata extends Record<string, unknown>>(template: AppshellTemplate, args: ConfigMap) => AppshellManifest<TMetadata>;
|
|
3
3
|
//# sourceMappingURL=appshell.config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appshell.config.d.ts","sourceRoot":"","sources":["../../../../../../config/src/mappers/appshell.config.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"appshell.config.d.ts","sourceRoot":"","sources":["../../../../../../config/src/mappers/appshell.config.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,gBAAgB,EAEhB,gBAAgB,EAChB,SAAS,EACV,MAAM,UAAU,CAAC;AA6DlB,eAAO,MAAM,kBAAkB,wDACnB,gBAAgB,QACpB,SAAS,gCAQhB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { AppshellManifest } from './types';
|
|
2
|
-
declare const _default: (manifest: AppshellManifest,
|
|
2
|
+
declare const _default: (manifest: AppshellManifest, registryPathOrUrl: string) => Promise<void>;
|
|
3
3
|
export default _default;
|
|
4
4
|
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../../config/src/register.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../../config/src/register.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,gBAAgB,EAAmB,MAAM,SAAS,CAAC;mCAclD,gBAAgB,qBAAqB,MAAM;AAA3E,wBAmCE"}
|
|
@@ -11,10 +11,17 @@ export type AppshellConfigRemote<TMetadata = Metadata> = {
|
|
|
11
11
|
metadata: TMetadata;
|
|
12
12
|
};
|
|
13
13
|
export type AppshellConfig<TMetadata = Metadata> = {
|
|
14
|
+
name?: string;
|
|
15
|
+
remotes?: Record<string, AppshellConfigRemote<TMetadata>>;
|
|
16
|
+
environment?: Record<string, unknown>;
|
|
17
|
+
overrides?: AppshellOverrides;
|
|
18
|
+
};
|
|
19
|
+
export type AppshellTemplate<TMetadata = Metadata> = {
|
|
14
20
|
name?: string;
|
|
15
21
|
remotes?: Record<string, AppshellConfigRemote<TMetadata>>;
|
|
16
22
|
module: ModuleFederationPluginOptions;
|
|
17
23
|
environment?: Record<string, unknown>;
|
|
24
|
+
overrides?: AppshellOverrides;
|
|
18
25
|
};
|
|
19
26
|
/** Appshell manifest types */
|
|
20
27
|
export type AppshellRemote<TMetadata = Metadata> = {
|
|
@@ -26,13 +33,22 @@ export type AppshellRemote<TMetadata = Metadata> = {
|
|
|
26
33
|
shareScope?: string;
|
|
27
34
|
metadata: TMetadata;
|
|
28
35
|
};
|
|
36
|
+
export type AppshellOverrides = {
|
|
37
|
+
environment: Record<string, Record<string, string | number | undefined>>;
|
|
38
|
+
};
|
|
29
39
|
export type AppshellManifest<TMetadata = Metadata> = {
|
|
30
40
|
remotes: Record<string, AppshellRemote<TMetadata>>;
|
|
31
41
|
modules: Record<string, ModuleFederationPluginOptions>;
|
|
32
42
|
environment: Record<string, Record<string, string | number | undefined>>;
|
|
43
|
+
overrides?: AppshellOverrides;
|
|
33
44
|
};
|
|
34
45
|
export type AppshellIndex = Record<string, string>;
|
|
35
46
|
export type Metadata = Record<string, unknown>;
|
|
47
|
+
export type AppshellGlobalConfig<TMetadata = Metadata> = {
|
|
48
|
+
index: AppshellIndex;
|
|
49
|
+
metadata?: Record<string, TMetadata>;
|
|
50
|
+
overrides?: AppshellOverrides;
|
|
51
|
+
};
|
|
36
52
|
/**
|
|
37
53
|
* Advanced configuration for modules that should be exposed by this container.
|
|
38
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../config/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAG/C,MAAM,MAAM,oBAAoB,CAAC,SAAS,GAAG,QAAQ,IAAI;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,SAAS,GAAG,QAAQ,IAAI;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,6BAA6B,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../config/src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../../../config/src/utils/load.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,QAAA,MAAM,IAAI,wBAAyB,MAAM,
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../../../config/src/utils/load.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,QAAA,MAAM,IAAI,wBAAyB,MAAM,YAUxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,OAAO,sBAAuB,MAAM,EAAE,cAA+C,CAAC;AAEnG,eAAe,IAAI,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type LoadJsonOptions = {
|
|
2
|
+
insecure: boolean;
|
|
3
|
+
target: string | RegExp;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: <T = Record<string, unknown>>(jsonPathOrUrl: string, options?: LoadJsonOptions) => Promise<T[]>;
|
|
6
|
+
export default _default;
|
|
3
7
|
//# sourceMappingURL=loadJson.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadJson.d.ts","sourceRoot":"","sources":["../../../../../../config/src/utils/loadJson.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loadJson.d.ts","sourceRoot":"","sources":["../../../../../../config/src/utils/loadJson.ts"],"names":[],"mappings":"AAOA,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,CAAC;qEAkCe,MAAM,YACZ,eAAe;AAF1B,wBAUE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppshellGlobalConfigValidator.d.ts","sourceRoot":"","sources":["../../../../../../config/src/validators/AppshellGlobalConfigValidator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAC;;AAEjE,wBAKqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppshellManifestValidator.d.ts","sourceRoot":"","sources":["../../../../../../config/src/validators/AppshellManifestValidator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,eAAe,EAAE,MAAM,UAAU,CAAC;;AAyB7D,wBAkBqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppshellTemplateValidator.d.ts","sourceRoot":"","sources":["../../../../../../config/src/validators/AppshellTemplateValidator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,eAAe,EAAE,MAAM,UAAU,CAAC;;AAuB7D,wBAkBqB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as
|
|
2
|
-
export { default as
|
|
3
|
-
export { default as
|
|
1
|
+
export { default as AppshellGlobalConfigValidator } from './AppshellGlobalConfigValidator';
|
|
2
|
+
export { default as AppshellManifestValidator } from './AppshellManifestValidator';
|
|
3
|
+
export { default as AppshellTemplateValidator } from './AppshellTemplateValidator';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../config/src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../config/src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
1
|
+
import { type AppshellManifest } from '@appshell/config';
|
|
2
|
+
import { AppshellGlobalConfig } from 'packages/config/src/types';
|
|
3
|
+
declare const _default: (config: AppshellGlobalConfig) => <TComponent>(key: string) => Promise<readonly [TComponent, AppshellManifest<import("@appshell/config").Metadata>] | readonly [null, null]>;
|
|
3
4
|
export default _default;
|
|
4
5
|
//# sourceMappingURL=remoteLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteLoader.d.ts","sourceRoot":"","sources":["../../../../src/remoteLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"remoteLoader.d.ts","sourceRoot":"","sources":["../../../../src/remoteLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;iCAwBzC,oBAAoB,uBAClB,MAAM;AADhC,wBAsCI"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appshell/loader",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-alpha.0",
|
|
4
4
|
"description": "Utility for loading federated components",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"types": "dist/loader/src/index.d.ts",
|
|
@@ -25,5 +25,5 @@
|
|
|
25
25
|
"appshell"
|
|
26
26
|
],
|
|
27
27
|
"license": "MIT",
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "a4216a032817193034b208f93ac7109458ef2c06"
|
|
29
29
|
}
|
package/src/remoteLoader.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* eslint-disable no-underscore-dangle */
|
|
2
|
-
import { type
|
|
2
|
+
import { type AppshellManifest } from '@appshell/config';
|
|
3
|
+
import { AppshellGlobalConfig } from 'packages/config/src/types';
|
|
3
4
|
import fetchDynamicScript from './fetchDynamicScript';
|
|
4
5
|
import loadFederatedComponent from './loadFederatedComponent';
|
|
5
6
|
|
|
@@ -23,10 +24,10 @@ const fetchManifest = async (url: string): Promise<AppshellManifest | undefined>
|
|
|
23
24
|
throw new Error(`Failed to get manifest from ${url}. ${message}`);
|
|
24
25
|
};
|
|
25
26
|
|
|
26
|
-
export default (
|
|
27
|
+
export default (config: AppshellGlobalConfig) =>
|
|
27
28
|
async <TComponent>(key: string) => {
|
|
28
29
|
let Component: TComponent;
|
|
29
|
-
const manifestUrl = index[key];
|
|
30
|
+
const manifestUrl = config.index[key];
|
|
30
31
|
if (!manifestUrl) {
|
|
31
32
|
throw new Error(`Remote resource not found in registry. Expected: ${key}`);
|
|
32
33
|
}
|
|
@@ -38,6 +39,7 @@ export default (index: AppshellIndex) =>
|
|
|
38
39
|
fetchedManifestCache.set(manifestUrl, manifest);
|
|
39
40
|
|
|
40
41
|
const remote = manifest.remotes[key];
|
|
42
|
+
|
|
41
43
|
window[`__appshell_env__${remote.scope}`] = manifest.environment[remote.scope] || {};
|
|
42
44
|
|
|
43
45
|
const loaded =
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates an appshell manifest
|
|
3
|
-
* @param configPath path of the appshell config to compile into an appshell manifest
|
|
4
|
-
* @param webpackConfig path of the webpack config
|
|
5
|
-
* @returns an appshell manifest
|
|
6
|
-
*/
|
|
7
|
-
declare const _default: <TMetadata extends Record<string, unknown>>(configPath: string, webpackConfig?: string, webpackEnv?: {}, webpackArgs?: {}) => Promise<import("./types").AppshellManifest<TMetadata> | null>;
|
|
8
|
-
export default _default;
|
|
9
|
-
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../../../config/src/generate.ts"],"names":[],"mappings":"AAyHA;;;;;GAKG;gFAEW,MAAM;AADpB,wBAsBE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate.index.d.ts","sourceRoot":"","sources":["../../../../../config/src/generate.index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAoB,MAAM,SAAS,CAAC;qCAGxB,MAAM,EAAE,KAAG,QAAQ,aAAa,CAAC;AAAnE,wBAgCE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate.metadata.d.ts","sourceRoot":"","sources":["../../../../../config/src/generate.metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,QAAQ,EAAE,MAAM,SAAS,CAAC;mEAGW,MAAM,EAAE;AAAxE,wBAgCE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"appshell.config.d.ts","sourceRoot":"","sources":["../../../../../../config/src/validators/appshell.config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,eAAe,EAAE,MAAM,UAAU,CAAC;;AAuB3D,wBAkBqB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"appshell.manifest.d.ts","sourceRoot":"","sources":["../../../../../../config/src/validators/appshell.manifest.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,eAAe,EAAE,MAAM,UAAU,CAAC;;AAyB7D,wBAkBqB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge.manifests.d.ts","sourceRoot":"","sources":["../../../../../../config/src/validators/merge.manifests.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,eAAe,EAAE,MAAM,UAAU,CAAC;;AAE7D,wBAKqB"}
|