Skip to content

Commit 0eb85a7

Browse files
Merge remote-tracking branch 'origin/master'
2 parents d68df56 + b23509a commit 0eb85a7

File tree

8 files changed

+120
-74
lines changed

8 files changed

+120
-74
lines changed

.changeset/beige-wasps-greet.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

.changeset/nice-olives-switch.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/seven-cougars-drop.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/twenty-monkeys-drum.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Step 3:
3535
Globally install and launch the dashboard:
3636

3737
```shell script
38-
> npm install -g @module-federation/dashboard
38+
> npm install -g @module-federation/dashboard-plugin
3939
> mfdash
4040
```
4141

dashboard-plugin/client-version.js

Lines changed: 77 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,53 @@
1-
module.exports = ({ currentHost, remoteName, dashboardURL }) => {
1+
module.exports = ({
2+
currentHost,
3+
remoteName,
4+
dashboardURL,
5+
fallbackEntryURL,
6+
fallbackRemoteVar,
7+
dashboardTimeout,
8+
}) => {
9+
fallbackRemoteVar = fallbackRemoteVar || remoteName;
10+
fallbackEntryURL = fallbackEntryURL || '';
11+
if (!dashboardTimeout) {
12+
dashboardTimeout = -1;
13+
}
14+
if (typeof dashboardTimeout !== 'number' || isNaN(dashboardTimeout)) {
15+
throw new Error('Invalid dashboardTimeout');
16+
}
217
//language=JS
318
return `promise new Promise((resolve, reject) => {
4-
fetch("${dashboardURL}&currentHost=${currentHost}&remoteName=${remoteName}", {
19+
var timeoutSignal;
20+
let timeoutId = null;
21+
var dashboardTimeout = ${dashboardTimeout};
22+
if (dashboardTimeout > 0) {
23+
var timeoutAbort = new AbortController();
24+
timeoutSignal = timeoutAbort.signal;
25+
timeoutId = setTimeout(function () {
26+
timeoutAbort.abort();
27+
}, dashboardTimeout);
28+
}
29+
fetch('${dashboardURL}&currentHost=${currentHost}&remoteName=${remoteName}', {
530
headers: {
6-
"Content-Type": "application/json",
7-
Accept: "application/json",
31+
'Content-Type': 'application/json',
32+
Accept: 'application/json',
833
},
34+
signal: timeoutSignal,
935
})
36+
.finally(function () {
37+
if (timeoutId !== null) {
38+
clearTimeout(timeoutId);
39+
}
40+
})
1041
.then(function (res) {
11-
return res.json()
42+
return res.json();
1243
})
1344
.then(function (data) {
14-
var name = data.name + "_" + data.version;
45+
var name = data.name + '_' + data.version;
1546
var filename = data.version + '.remoteEntry.js';
16-
var url = new URL(filename, data.remoteURL)
17-
47+
var url = new URL(filename, data.remoteURL);
48+
1849
new Promise(function (resolve, reject) {
19-
var __webpack_error__ = new Error()
50+
var __webpack_error__ = new Error();
2051
if (typeof window[name] !== 'undefined') return resolve();
2152
__webpack_require__.l(
2253
url.href,
@@ -31,11 +62,43 @@ module.exports = ({ currentHost, remoteName, dashboardURL }) => {
3162
__webpack_error__.request = realSrc;
3263
reject(__webpack_error__);
3364
},
34-
name,
65+
name
3566
);
36-
}).then(function () {
37-
resolve(window[name])
38-
}).catch(reject)
67+
})
68+
.then(function () {
69+
resolve(window[name]);
70+
})
71+
.catch(reject);
3972
})
40-
})`;
73+
.catch(function (error) {
74+
var fallbackEntryURL = '${fallbackEntryURL}';
75+
if (!fallbackEntryURL) return Promise.reject(error);
76+
var name = '${fallbackRemoteVar}';
77+
var url = new URL(fallbackEntryURL);
78+
79+
new Promise(function (resolve, reject) {
80+
var __webpack_error__ = new Error();
81+
if (typeof window[name] !== 'undefined') return resolve();
82+
__webpack_require__.l(
83+
url.href,
84+
function (event) {
85+
if (typeof window[name] !== 'undefined') return resolve();
86+
var errorType = event && (event.type === 'load' ? 'missing' : event.type);
87+
var realSrc = event && event.target && event.target.src;
88+
__webpack_error__.message =
89+
'Loading script failed.\\n(' + errorType + ': ' + realSrc + ')';
90+
__webpack_error__.name = 'ScriptExternalLoadError';
91+
__webpack_error__.type = errorType;
92+
__webpack_error__.request = realSrc;
93+
reject(__webpack_error__);
94+
},
95+
name
96+
);
97+
})
98+
.then(function () {
99+
resolve(window[name]);
100+
})
101+
.catch(reject);
102+
});
103+
});`;
41104
};

dashboard-plugin/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
},
1818
"repository": {
1919
"type": "git",
20-
"url": "https://github.com/module-federation/medusa.git"
20+
"url": "https://github.com/module-federation/federation-dashboard.git"
2121
},
2222
"files": [
2323
"bin",
@@ -45,7 +45,7 @@
4545
},
4646
"devDependencies": {
4747
"jest": "26.6.3",
48-
"webpack": "5.61.0",
48+
"webpack": "5.76.0",
4949
"webpack-sources": "2.3.1"
5050
}
5151
}

yarn.lock

Lines changed: 40 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1649,10 +1649,10 @@
16491649
dependencies:
16501650
"@babel/types" "^7.3.0"
16511651

1652-
"@types/eslint-scope@^3.7.0":
1653-
version "3.7.3"
1654-
resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz"
1655-
integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==
1652+
"@types/eslint-scope@^3.7.3":
1653+
version "3.7.4"
1654+
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16"
1655+
integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==
16561656
dependencies:
16571657
"@types/eslint" "*"
16581658
"@types/estree" "*"
@@ -1665,16 +1665,11 @@
16651665
"@types/estree" "*"
16661666
"@types/json-schema" "*"
16671667

1668-
"@types/estree@*":
1668+
"@types/estree@*", "@types/estree@^0.0.51":
16691669
version "0.0.51"
16701670
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz"
16711671
integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
16721672

1673-
"@types/estree@^0.0.50":
1674-
version "0.0.50"
1675-
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz"
1676-
integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
1677-
16781673
"@types/graceful-fs@^4.1.2":
16791674
version "4.1.5"
16801675
resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz"
@@ -1952,11 +1947,16 @@ acorn@^7.1.1:
19521947
resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
19531948
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
19541949

1955-
acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0:
1950+
acorn@^8.2.4, acorn@^8.5.0:
19561951
version "8.7.0"
19571952
resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz"
19581953
integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
19591954

1955+
acorn@^8.7.1:
1956+
version "8.9.0"
1957+
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59"
1958+
integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==
1959+
19601960
add-stream@^1.0.0:
19611961
version "1.0.0"
19621962
resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz"
@@ -3164,10 +3164,10 @@ end-of-stream@^1.1.0:
31643164
dependencies:
31653165
once "^1.4.0"
31663166

3167-
enhanced-resolve@^5.8.3:
3168-
version "5.9.2"
3169-
resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz"
3170-
integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==
3167+
enhanced-resolve@^5.10.0:
3168+
version "5.15.0"
3169+
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35"
3170+
integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==
31713171
dependencies:
31723172
graceful-fs "^4.2.4"
31733173
tapable "^2.2.0"
@@ -3868,6 +3868,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5
38683868
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz"
38693869
integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
38703870

3871+
graceful-fs@^4.2.9:
3872+
version "4.2.11"
3873+
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
3874+
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
3875+
38713876
grapheme-splitter@^1.0.4:
38723877
version "1.0.4"
38733878
resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz"
@@ -5005,12 +5010,12 @@ jsesc@^2.5.1:
50055010
resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
50065011
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
50075012

5008-
json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
5013+
json-parse-better-errors@^1.0.1:
50095014
version "1.0.2"
50105015
resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"
50115016
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
50125017

5013-
json-parse-even-better-errors@^2.3.0:
5018+
json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
50145019
version "2.3.1"
50155020
resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
50165021
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
@@ -7844,10 +7849,10 @@ walker@^1.0.7, walker@~1.0.5:
78447849
dependencies:
78457850
makeerror "1.0.12"
78467851

7847-
watchpack@^2.2.0:
7848-
version "2.3.1"
7849-
resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz"
7850-
integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==
7852+
watchpack@^2.4.0:
7853+
version "2.4.0"
7854+
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
7855+
integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==
78517856
dependencies:
78527857
glob-to-regexp "^0.4.1"
78537858
graceful-fs "^4.1.2"
@@ -7909,40 +7914,40 @@ [email protected]:
79097914
source-list-map "^2.0.1"
79107915
source-map "^0.6.1"
79117916

7912-
webpack-sources@^3.2.0:
7917+
webpack-sources@^3.2.3:
79137918
version "3.2.3"
7914-
resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz"
7919+
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
79157920
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
79167921

7917-
webpack@5.61.0:
7918-
version "5.61.0"
7919-
resolved "https://registry.npmjs.org/webpack/-/webpack-5.61.0.tgz"
7920-
integrity sha512-fPdTuaYZ/GMGFm4WrPi2KRCqS1vDp773kj9S0iI5Uc//5cszsFEDgHNaX4Rj1vobUiU1dFIV3mA9k1eHeluFpw==
7922+
webpack@5.76.0:
7923+
version "5.76.0"
7924+
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.0.tgz#f9fb9fb8c4a7dbdcd0d56a98e56b8a942ee2692c"
7925+
integrity sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==
79217926
dependencies:
7922-
"@types/eslint-scope" "^3.7.0"
7923-
"@types/estree" "^0.0.50"
7927+
"@types/eslint-scope" "^3.7.3"
7928+
"@types/estree" "^0.0.51"
79247929
"@webassemblyjs/ast" "1.11.1"
79257930
"@webassemblyjs/wasm-edit" "1.11.1"
79267931
"@webassemblyjs/wasm-parser" "1.11.1"
7927-
acorn "^8.4.1"
7932+
acorn "^8.7.1"
79287933
acorn-import-assertions "^1.7.6"
79297934
browserslist "^4.14.5"
79307935
chrome-trace-event "^1.0.2"
7931-
enhanced-resolve "^5.8.3"
7936+
enhanced-resolve "^5.10.0"
79327937
es-module-lexer "^0.9.0"
79337938
eslint-scope "5.1.1"
79347939
events "^3.2.0"
79357940
glob-to-regexp "^0.4.1"
7936-
graceful-fs "^4.2.4"
7937-
json-parse-better-errors "^1.0.2"
7941+
graceful-fs "^4.2.9"
7942+
json-parse-even-better-errors "^2.3.1"
79387943
loader-runner "^4.2.0"
79397944
mime-types "^2.1.27"
79407945
neo-async "^2.6.2"
79417946
schema-utils "^3.1.0"
79427947
tapable "^2.1.1"
79437948
terser-webpack-plugin "^5.1.3"
7944-
watchpack "^2.2.0"
7945-
webpack-sources "^3.2.0"
7949+
watchpack "^2.4.0"
7950+
webpack-sources "^3.2.3"
79467951

79477952
whatwg-encoding@^1.0.5:
79487953
version "1.0.5"

0 commit comments

Comments
 (0)