@module-federation/node 0.10.5 → 0.11.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 +12 -0
- package/package.json +15 -12
- package/src/plugins/LoadFileChunkLoadingRuntimeModule.js +17 -4
- package/src/plugins/LoadFileChunkLoadingRuntimeModule.js.map +1 -1
- package/src/plugins/NodeFederationPlugin.js +7 -7
- package/src/plugins/NodeFederationPlugin.js.map +1 -1
- package/src/plugins/loadScript.d.ts +2 -2
- package/src/plugins/loadScript.js +19 -16
- package/src/plugins/loadScript.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
# [0.11.0](https://github.com/module-federation/nextjs-mf/compare/node-0.10.5...node-0.11.0) (2023-02-09)
|
|
6
|
+
|
|
7
|
+
### Dependency Updates
|
|
8
|
+
|
|
9
|
+
* `utils` updated to version `1.3.0`
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* Delegate Modules ([#509](https://github.com/module-federation/nextjs-mf/issues/509)) ([1a085e7](https://github.com/module-federation/nextjs-mf/commit/1a085e7e03ca0afd5c64389b4b169f3db3382f6b))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
5
17
|
## [0.10.5](https://github.com/module-federation/nextjs-mf/compare/node-0.10.4...node-0.10.5) (2023-02-09)
|
|
6
18
|
|
|
7
19
|
### Dependency Updates
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"public": true,
|
|
3
3
|
"name": "@module-federation/node",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.11.0",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -33,21 +33,24 @@
|
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"encoding": "0.1.13",
|
|
36
|
-
"next": "13.1.6",
|
|
37
36
|
"node-fetch": "2.6.7",
|
|
38
|
-
"
|
|
39
|
-
"react-dom": "18.2.0",
|
|
40
|
-
"@module-federation/utilities": "1.2.1"
|
|
37
|
+
"@module-federation/utilities": "1.3.0"
|
|
41
38
|
},
|
|
42
39
|
"peerDependencies": {
|
|
40
|
+
"next": "^12||^13",
|
|
41
|
+
"react": "^16||^17||^18",
|
|
42
|
+
"react-dom": "^16||^17||^18",
|
|
43
43
|
"webpack": "^5.40.0"
|
|
44
44
|
},
|
|
45
|
-
"
|
|
46
|
-
"next":
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
"peerDependenciesMeta": {
|
|
46
|
+
"next": {
|
|
47
|
+
"optional": true
|
|
48
|
+
},
|
|
49
|
+
"react": {
|
|
50
|
+
"optional": true
|
|
51
|
+
},
|
|
52
|
+
"react-dom": {
|
|
53
|
+
"optional": true
|
|
54
|
+
}
|
|
52
55
|
}
|
|
53
56
|
}
|
|
@@ -52,6 +52,19 @@ class ReadFileChunkLoadingRuntimeModule extends webpack_1.RuntimeModule {
|
|
|
52
52
|
// remotes only use fs.readFile if we were to cache the chunks on disk after fetching - otherwise its always using http
|
|
53
53
|
// so for example, if im in hostA and require(remoteb/module) --> console.log of name in runtime code will return remoteb
|
|
54
54
|
const { remotes = {}, name } = this.options;
|
|
55
|
+
// for delegate modules, we need to avoid serializing internal modules, only register primitive configs in the runtime
|
|
56
|
+
// delegates have their own registration code, so we dont need to handle them here.
|
|
57
|
+
const remotesByType = Object.values(remotes).reduce((acc, remote) => {
|
|
58
|
+
if (remote.startsWith('promise ') ||
|
|
59
|
+
remote.startsWith('internal ') ||
|
|
60
|
+
remote.startsWith('external ')) {
|
|
61
|
+
acc.functional.push(remote);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
acc.normal.push(remote);
|
|
65
|
+
}
|
|
66
|
+
return acc;
|
|
67
|
+
}, { functional: [], normal: [] });
|
|
55
68
|
const { webpack } = this.chunkLoadingContext;
|
|
56
69
|
const chunkHasJs = (webpack && webpack.javascript.JavascriptModulesPlugin.chunkHasJs) ||
|
|
57
70
|
require('webpack/lib/javascript/JavascriptModulesPlugin').chunkHasJs;
|
|
@@ -196,7 +209,7 @@ class ReadFileChunkLoadingRuntimeModule extends webpack_1.RuntimeModule {
|
|
|
196
209
|
this._getLogger(`'needs to load remote module from ${JSON.stringify(name)}'`),
|
|
197
210
|
this._getLogger(`'remotes known to'`, JSON.stringify(name), JSON.stringify(remotes)),
|
|
198
211
|
// keys are mostly useless here, we want to find remote by its global (unique name)
|
|
199
|
-
`var remotes = ${JSON.stringify(Object.values(
|
|
212
|
+
`var remotes = ${JSON.stringify(Object.values(remotesByType.normal).reduce((acc, remote) => {
|
|
200
213
|
//TODO: need to handle all other cases like when remote is not a @ syntax string
|
|
201
214
|
const [global, url] = remote.split('@');
|
|
202
215
|
acc[global] = url;
|
|
@@ -207,7 +220,7 @@ class ReadFileChunkLoadingRuntimeModule extends webpack_1.RuntimeModule {
|
|
|
207
220
|
/*
|
|
208
221
|
TODO: keying by global should be ok, but need to verify - need to deal with when user passes promise new promise() global will/should still exist - but can only be known at runtime
|
|
209
222
|
*/
|
|
210
|
-
this._getLogger(`'remotes keyed by global name'`, JSON.stringify(
|
|
223
|
+
this._getLogger(`'remotes keyed by global name'`, JSON.stringify(remotesByType.normal)),
|
|
211
224
|
this._getLogger(`'remote scope configs'`, 'global.__remote_scope__._config'),
|
|
212
225
|
this._getLogger(`'before remote scope'`),
|
|
213
226
|
this._getLogger(`'global.__remote_scope__'`, `global.__remote_scope__`),
|
|
@@ -247,7 +260,7 @@ class ReadFileChunkLoadingRuntimeModule extends webpack_1.RuntimeModule {
|
|
|
247
260
|
`loadScript(scriptUrl.toString(), function(err, content) {`,
|
|
248
261
|
webpack_1.Template.indent([
|
|
249
262
|
this._getLogger(`'load script callback fired'`),
|
|
250
|
-
"if(err) {console.error('error loading remote chunk', scriptUrl.toString(),'got',content); return reject(err);}",
|
|
263
|
+
"if(err) {console.error('error loading remote chunk', scriptUrl.toString(),'got',content,'with error', err); return reject(err);}",
|
|
251
264
|
'var chunk = {};',
|
|
252
265
|
'try {',
|
|
253
266
|
"require('vm').runInThisContext('(function(exports, require, __dirname, __filename) {' + content + '\\n})', filename)" +
|
|
@@ -257,7 +270,7 @@ class ReadFileChunkLoadingRuntimeModule extends webpack_1.RuntimeModule {
|
|
|
257
270
|
'}',
|
|
258
271
|
'installChunk(chunk);',
|
|
259
272
|
]),
|
|
260
|
-
'});',
|
|
273
|
+
'}, chunkId);',
|
|
261
274
|
]),
|
|
262
275
|
'}',
|
|
263
276
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadFileChunkLoadingRuntimeModule.js","sourceRoot":"","sources":["../../../../../packages/node/src/plugins/LoadFileChunkLoadingRuntimeModule.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD;;EAEE;AAEF,YAAY,CAAC;;;AAGb,qCAAkE;AAClE,4DAA0D;AAC1D,2GAA2E;AAE3E,mEAAuE;
|
|
1
|
+
{"version":3,"file":"LoadFileChunkLoadingRuntimeModule.js","sourceRoot":"","sources":["../../../../../packages/node/src/plugins/LoadFileChunkLoadingRuntimeModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,10 @@ const utilities_1 = require("@module-federation/utilities");
|
|
|
11
11
|
// commonjs-module, ideal since it returns a commonjs module format
|
|
12
12
|
// const remote = eval(scriptContent + 'module.exports')
|
|
13
13
|
const parseRemotes = (remotes) => Object.entries(remotes).reduce((acc, remote) => {
|
|
14
|
+
if (remote[1].startsWith('internal ')) {
|
|
15
|
+
acc[remote[0]] = remote[1];
|
|
16
|
+
return acc;
|
|
17
|
+
}
|
|
14
18
|
if (!remote[1].startsWith('promise ') && remote[1].includes('@')) {
|
|
15
19
|
acc[remote[0]] = `promise ${(0, exports.parseRemoteSyntax)(remote[1])}`;
|
|
16
20
|
return acc;
|
|
@@ -66,12 +70,6 @@ const generateRemoteTemplate = (url, global) => `new Promise(function (resolve,
|
|
|
66
70
|
}
|
|
67
71
|
const proxy = {
|
|
68
72
|
get: (arg)=>{
|
|
69
|
-
// if(!global.__remote_scope__[${JSON.stringify(global)}].__initialized) {
|
|
70
|
-
// try {
|
|
71
|
-
// global.__remote_scope__[${JSON.stringify(global)}].__initialized = true;
|
|
72
|
-
// proxy.init(__webpack_require__.S.default);
|
|
73
|
-
// } catch(e) {}
|
|
74
|
-
// }
|
|
75
73
|
return remote.get(arg).then((f)=>{
|
|
76
74
|
const m = f();
|
|
77
75
|
return ()=>new Proxy(m, {
|
|
@@ -111,8 +109,10 @@ const generateRemoteTemplate = (url, global) => `new Promise(function (resolve,
|
|
|
111
109
|
global.__remote_scope__[${JSON.stringify(global)}].__initialized = true
|
|
112
110
|
}
|
|
113
111
|
}
|
|
114
|
-
|
|
112
|
+
try {
|
|
115
113
|
proxy.init(__webpack_require__.S.default)
|
|
114
|
+
} catch(e) {
|
|
115
|
+
console.error('failed to init', ${JSON.stringify(global)}, e)
|
|
116
116
|
}
|
|
117
117
|
return proxy
|
|
118
118
|
})`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeFederationPlugin.js","sourceRoot":"","sources":["../../../../../packages/node/src/plugins/NodeFederationPlugin.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAIb,4DAAmE;AAWnE,6BAA6B;AAC7B,6CAA6C;AAC7C,qDAAqD;AACrD,yFAAyF;AACzF,yDAAyD;AACzD,wEAAwE;AACxE,mEAAmE;AACnE,wDAAwD;AAEjD,MAAM,YAAY,GAAG,CAAC,OAA4B,EAAE,EAAE,CAC3D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC7C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAChE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,GAAG,CAAC;KACZ;IACD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAA4B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeFederationPlugin.js","sourceRoot":"","sources":["../../../../../packages/node/src/plugins/NodeFederationPlugin.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAIb,4DAAmE;AAWnE,6BAA6B;AAC7B,6CAA6C;AAC7C,qDAAqD;AACrD,yFAAyF;AACzF,yDAAyD;AACzD,wEAAwE;AACxE,mEAAmE;AACnE,wDAAwD;AAEjD,MAAM,YAAY,GAAG,CAAC,OAA4B,EAAE,EAAE,CAC3D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IAC7C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QACrC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC;KACZ;IACD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAChE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,GAAG,CAAC;KACZ;IACD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAA4B,CAAC,CAAC;AAZtB,QAAA,YAAY,gBAYU;AACnC,yGAAyG;AAClG,MAAM,sBAAsB,GAAG,CACpC,GAAW,EACX,MAAW,EACX,EAAE,CAAC;;;;;;;;yCAQoC,IAAI,CAAC,SAAS,CACjD,MAAM,CACP,6DAA6D,IAAI,CAAC,SAAS,CAC9E,MAAM,CACP;sCACqC,IAAI,CAAC,SAAS,CAC9C,MAAM,CACP,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;;;QAIvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;6CAEkB,IAAI,CAAC,SAAS,CACjD,MAAM,CACP,6DAA6D,IAAI,CAAC,SAAS,CAClF,MAAM,CACP;;;;;;;QAOO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;;oBAGV,IAAI,CAAC,SAAS,CAC5B,MAAM,CACP;;;;;;kDAM6C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;4DAmBZ,IAAI,CAAC,SAAS,CAC1D,MAAM,CACP;;;;;;;;;;;;;;;;;;;0DAmB2C,IAAI,CAAC,SAAS,CAC1D,MAAM,CACP;;;;;;;;;oCASuB,IAAI,CAAC,SAAS,CACtC,MAAM,CACP;;;;kCAIuB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;;;;;wCAMhB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;;KAGzD,CAAC;AAhHO,QAAA,sBAAsB,0BAgH7B;AAEC,MAAM,iBAAiB,GAAG,CAAC,MAAW,EAAE,EAAE;IAC/C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACtD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,+BAAmB,EAAC,MAAM,CAAC,CAAC;QAClD,OAAO,IAAA,8BAAsB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;KAC5C;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAPW,QAAA,iBAAiB,qBAO5B;AAEF,MAAM,oBAAoB;IAKxB,YACE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,EAAyB,EAC3D,OAAgB;QAEhB,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAK,EAAoC,CAAC;QACjE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAK,EAAc,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,mEAAmE;QACnE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QAE7B,iBAAiB;QACjB,oCAAoC;QACpC,sCAAsC;QACtC,KAAK;QAEL,8EAA8E;QAC9E,WAAW;QACX,qBAAqB;QACrB,MAAM,aAAa,GAAG;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO,EAAE,IAAA,oBAAY,EACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CACgB;SAC9C,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB;YACtC,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC;YACrD,OAAO,CAAC,8CAA8C,CAAC,CAAC,CACxD,aAAa,CACd,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;CACF;AAED,kBAAe,oBAAoB,CAAC"}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* loadScript(baseURI, fileName, cb)
|
|
3
3
|
* loadScript(scriptUrl, cb)
|
|
4
4
|
*/
|
|
5
|
-
declare const _default: "\n function loadScript(url, cb, chunkID) {\n
|
|
5
|
+
declare const _default: "\n function loadScript(url, cb, chunkID) {\n if (global.webpackChunkLoad) {\n global.webpackChunkLoad(url).then(function (resp) {\n return resp.text();\n }).then(function (rawData) {\n cb(null, rawData);\n }).catch(function (err) {\n console.error('Federated Chunk load failed', error);\n return cb(error)\n });\n } else {\n //TODO https support\n let request = (url.startsWith('https') ? require('https') : require('http')).get(url, function (resp) {\n if (resp.statusCode === 200) {\n let rawData = '';\n resp.setEncoding('utf8');\n resp.on('data', chunk => {\n rawData += chunk;\n });\n resp.on('end', () => {\n cb(null, rawData);\n });\n } else {\n cb(resp);\n }\n });\n request.on('error', error => {\n console.error('Federated Chunk load failed', error);\n return cb(error)\n });\n }\n }\n";
|
|
6
6
|
export default _default;
|
|
7
|
-
export declare const executeLoadTemplate = "\n function executeLoad(url, callback, name) {\n if(!name) {\n throw new Error('__webpack_require__.l name is required for ' + url);\n }\n if (typeof global.__remote_scope__[name] !== 'undefined') return callback(global.__remote_scope__[name]);\n const vm = require('vm');\n (global.webpackChunkLoad || global.fetch || require(\"node-fetch\"))(url).then(function (res) {\n return res.text();\n }).then(function (scriptContent) {\n try {\n const vmContext = {exports, require, module, global, __filename, __dirname, URL,console,process,Buffer, ...global, remoteEntryName: name};\n const remote = vm.runInNewContext(scriptContent + '\\nmodule.exports', vmContext, {filename: 'node-federation-loader-' + name + '.vm'});\n global.__remote_scope__[name]
|
|
7
|
+
export declare const executeLoadTemplate = "\n function executeLoad(url, callback, name) {\n if(!name) {\n throw new Error('__webpack_require__.l name is required for ' + url);\n }\n\n if (typeof global.__remote_scope__[name] !== 'undefined') return callback(global.__remote_scope__[name]);\n\n const vm = require('vm');\n (global.webpackChunkLoad || global.fetch || require(\"node-fetch\"))(url).then(function (res) {\n return res.text();\n }).then(function (scriptContent) {\n try {\n const vmContext = {exports, require, module, global, __filename, __dirname, URL, URLSearchParams, console, process,Buffer, ...global, remoteEntryName: name};\n const remote = vm.runInNewContext(scriptContent + '\\nmodule.exports', vmContext, {filename: 'node-federation-loader-' + name + '.vm'});\n const foundContainer = remote[name] || remote\n\n if(!global.__remote_scope__[name]) {\n global.__remote_scope__[name] = {\n get: foundContainer.get,\n init: function(initScope, initToken) {\n try {\n foundContainer.init(initScope, initToken)\n } catch (e) {\n // already initialized\n }\n }\n };\n global.__remote_scope__._config[name] = url;\n }\n callback(global.__remote_scope__[name]);\n } catch (e) {\n console.error('executeLoad hit catch block');\n e.target = {src: url};\n callback(e);\n }\n }).catch((e) => {\n e.target = {src: url};\n callback(e);\n });\n }\n";
|
|
@@ -8,18 +8,6 @@ exports.executeLoadTemplate = void 0;
|
|
|
8
8
|
//language=JS
|
|
9
9
|
exports.default = `
|
|
10
10
|
function loadScript(url, cb, chunkID) {
|
|
11
|
-
var url;
|
|
12
|
-
var cb = arguments[arguments.length - 1];
|
|
13
|
-
if (typeof cb !== "function") {
|
|
14
|
-
throw new Error("last argument should be a function");
|
|
15
|
-
}
|
|
16
|
-
if (arguments.length === 2) {
|
|
17
|
-
url = arguments[0];
|
|
18
|
-
} else if (arguments.length === 3) {
|
|
19
|
-
url = new URL(arguments[1], arguments[0]).toString();
|
|
20
|
-
} else {
|
|
21
|
-
throw new Error("invalid number of arguments");
|
|
22
|
-
}
|
|
23
11
|
if (global.webpackChunkLoad) {
|
|
24
12
|
global.webpackChunkLoad(url).then(function (resp) {
|
|
25
13
|
return resp.text();
|
|
@@ -59,17 +47,32 @@ exports.executeLoadTemplate = `
|
|
|
59
47
|
if(!name) {
|
|
60
48
|
throw new Error('__webpack_require__.l name is required for ' + url);
|
|
61
49
|
}
|
|
50
|
+
|
|
62
51
|
if (typeof global.__remote_scope__[name] !== 'undefined') return callback(global.__remote_scope__[name]);
|
|
52
|
+
|
|
63
53
|
const vm = require('vm');
|
|
64
54
|
(global.webpackChunkLoad || global.fetch || require("node-fetch"))(url).then(function (res) {
|
|
65
55
|
return res.text();
|
|
66
56
|
}).then(function (scriptContent) {
|
|
67
57
|
try {
|
|
68
|
-
const vmContext = {exports, require, module, global, __filename, __dirname, URL,console,process,Buffer, ...global, remoteEntryName: name};
|
|
58
|
+
const vmContext = {exports, require, module, global, __filename, __dirname, URL, URLSearchParams, console, process,Buffer, ...global, remoteEntryName: name};
|
|
69
59
|
const remote = vm.runInNewContext(scriptContent + '\\nmodule.exports', vmContext, {filename: 'node-federation-loader-' + name + '.vm'});
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
const foundContainer = remote[name] || remote
|
|
61
|
+
|
|
62
|
+
if(!global.__remote_scope__[name]) {
|
|
63
|
+
global.__remote_scope__[name] = {
|
|
64
|
+
get: foundContainer.get,
|
|
65
|
+
init: function(initScope, initToken) {
|
|
66
|
+
try {
|
|
67
|
+
foundContainer.init(initScope, initToken)
|
|
68
|
+
} catch (e) {
|
|
69
|
+
// already initialized
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
global.__remote_scope__._config[name] = url;
|
|
74
|
+
}
|
|
75
|
+
callback(global.__remote_scope__[name]);
|
|
73
76
|
} catch (e) {
|
|
74
77
|
console.error('executeLoad hit catch block');
|
|
75
78
|
e.target = {src: url};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadScript.js","sourceRoot":"","sources":["../../../../../packages/node/src/plugins/loadScript.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,aAAa;AACb,kBAAe
|
|
1
|
+
{"version":3,"file":"loadScript.js","sourceRoot":"","sources":["../../../../../packages/node/src/plugins/loadScript.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,aAAa;AACb,kBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCd,CAAC;AAEF,0EAA0E;AAC1E,aAAa;AACA,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyClC,CAAC"}
|