File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed
packages/runtime/src/utils Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' @module-federation/runtime ' : minor
3
+ ---
4
+
5
+ adding support for loading systemjs based remotes
Original file line number Diff line number Diff line change @@ -33,6 +33,30 @@ export async function loadEsmEntry({
33
33
} ) ;
34
34
}
35
35
36
+ export async function loadSystemJsEntry ( {
37
+ entry,
38
+ remoteEntryExports,
39
+ } : {
40
+ entry : string ;
41
+ remoteEntryExports : RemoteEntryExports | undefined ;
42
+ } ) : Promise < RemoteEntryExports > {
43
+ return new Promise < RemoteEntryExports > ( ( resolve , reject ) => {
44
+ try {
45
+ if ( ! remoteEntryExports ) {
46
+ // eslint-disable-next-line no-eval
47
+ new Function (
48
+ 'callbacks' ,
49
+ `System.import("${ entry } ").then(callbacks[0]).catch(callbacks[1])` ,
50
+ ) ( [ resolve , reject ] ) ;
51
+ } else {
52
+ resolve ( remoteEntryExports ) ;
53
+ }
54
+ } catch ( e ) {
55
+ reject ( e ) ;
56
+ }
57
+ } ) ;
58
+ }
59
+
36
60
export async function loadEntryScript ( {
37
61
name,
38
62
globalName,
@@ -137,6 +161,11 @@ export async function getRemoteEntry({
137
161
entry,
138
162
remoteEntryExports,
139
163
} ) ;
164
+ } else if ( type === 'system' ) {
165
+ globalLoading [ uniqueKey ] = loadSystemJsEntry ( {
166
+ entry,
167
+ remoteEntryExports,
168
+ } ) ;
140
169
} else {
141
170
globalLoading [ uniqueKey ] = loadEntryScript ( {
142
171
name,
You can’t perform that action at this time.
0 commit comments