@module-federation/retry-plugin 0.6.13 → 0.6.14
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/dist/CHANGELOG.md +8 -0
- package/dist/esm/index.js +12 -6
- package/dist/index.js +12 -6
- package/dist/package.json +4 -1
- package/package.json +5 -2
package/dist/CHANGELOG.md
CHANGED
package/dist/esm/index.js
CHANGED
|
@@ -8,6 +8,12 @@ var loadStatus = {
|
|
|
8
8
|
success: "success",
|
|
9
9
|
error: "error"
|
|
10
10
|
};
|
|
11
|
+
var PLUGIN_IDENTIFIER = "[ Module Federation RetryPlugin ]";
|
|
12
|
+
|
|
13
|
+
// packages/retry-plugin/src/logger.ts
|
|
14
|
+
import { createLogger } from "@module-federation/sdk";
|
|
15
|
+
var logger = createLogger(PLUGIN_IDENTIFIER);
|
|
16
|
+
var logger_default = logger;
|
|
11
17
|
|
|
12
18
|
// packages/retry-plugin/src/fetch-retry.ts
|
|
13
19
|
async function fetchWithRetry({ url, options = {}, retryTimes = defaultRetries, retryDelay = defaultRetryDelay, fallback }) {
|
|
@@ -23,7 +29,7 @@ async function fetchWithRetry({ url, options = {}, retryTimes = defaultRetries,
|
|
|
23
29
|
return response;
|
|
24
30
|
} catch (error) {
|
|
25
31
|
if (retryTimes <= 0) {
|
|
26
|
-
|
|
32
|
+
logger_default.log(`>>>>>>>>> retry failed after ${retryTimes} times for url: ${url}, now will try fallbackUrl url <<<<<<<<<`);
|
|
27
33
|
if (fallback && typeof fallback === "function") {
|
|
28
34
|
return fetchWithRetry({
|
|
29
35
|
url: fallback(),
|
|
@@ -35,10 +41,10 @@ async function fetchWithRetry({ url, options = {}, retryTimes = defaultRetries,
|
|
|
35
41
|
if (error instanceof Error && error.message.includes("Json parse error")) {
|
|
36
42
|
throw error;
|
|
37
43
|
}
|
|
38
|
-
throw new Error(
|
|
44
|
+
throw new Error(`${PLUGIN_IDENTIFIER}: The request failed three times and has now been abandoned`);
|
|
39
45
|
} else {
|
|
40
46
|
retryDelay > 0 && await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
41
|
-
|
|
47
|
+
logger_default.log(`Trying again. Number of retries available\uFF1A${retryTimes - 1}`);
|
|
42
48
|
return await fetchWithRetry({
|
|
43
49
|
url,
|
|
44
50
|
options,
|
|
@@ -88,12 +94,12 @@ async function loadScript(url, attrs, maxRetries = defaultRetries, retryDelay =
|
|
|
88
94
|
script.onerror = (event) => {
|
|
89
95
|
if (retries < maxRetries) {
|
|
90
96
|
retries++;
|
|
91
|
-
|
|
97
|
+
logger_default.warn(`Failed to load script. Retrying... (${retries}/${maxRetries})`);
|
|
92
98
|
retryDelay > 0 && setTimeout(() => {
|
|
93
99
|
resolve(attemptLoad());
|
|
94
100
|
}, retryDelay);
|
|
95
101
|
} else {
|
|
96
|
-
|
|
102
|
+
logger_default.error(`Failed to load script after maximum retries. the url is: ${url}`);
|
|
97
103
|
resolve({
|
|
98
104
|
status: loadStatus.error,
|
|
99
105
|
event
|
|
@@ -112,7 +118,7 @@ function scriptWithRetry({ url, attrs = {}, retryTimes = defaultRetries, retryDe
|
|
|
112
118
|
const originOnerror = script.onerror;
|
|
113
119
|
const originOnLoad = script.onload;
|
|
114
120
|
script.onerror = async (event) => {
|
|
115
|
-
|
|
121
|
+
logger_default.warn(`Script load failed, retrying (${retryTimes + 1}/${defaultRetries}): ${url}`);
|
|
116
122
|
const scriptLoader = await loadScript(url, attrs, retryTimes, retryDelay, customCreateScript);
|
|
117
123
|
if (scriptLoader.status === loadStatus.success) {
|
|
118
124
|
originOnLoad?.call(script, scriptLoader?.event);
|
package/dist/index.js
CHANGED
|
@@ -32,6 +32,12 @@ var loadStatus = {
|
|
|
32
32
|
success: "success",
|
|
33
33
|
error: "error"
|
|
34
34
|
};
|
|
35
|
+
var PLUGIN_IDENTIFIER = "[ Module Federation RetryPlugin ]";
|
|
36
|
+
|
|
37
|
+
// packages/retry-plugin/src/logger.ts
|
|
38
|
+
var import_sdk = require("@module-federation/sdk");
|
|
39
|
+
var logger = (0, import_sdk.createLogger)(PLUGIN_IDENTIFIER);
|
|
40
|
+
var logger_default = logger;
|
|
35
41
|
|
|
36
42
|
// packages/retry-plugin/src/fetch-retry.ts
|
|
37
43
|
async function fetchWithRetry({ url, options = {}, retryTimes = defaultRetries, retryDelay = defaultRetryDelay, fallback }) {
|
|
@@ -47,7 +53,7 @@ async function fetchWithRetry({ url, options = {}, retryTimes = defaultRetries,
|
|
|
47
53
|
return response;
|
|
48
54
|
} catch (error) {
|
|
49
55
|
if (retryTimes <= 0) {
|
|
50
|
-
|
|
56
|
+
logger_default.log(`>>>>>>>>> retry failed after ${retryTimes} times for url: ${url}, now will try fallbackUrl url <<<<<<<<<`);
|
|
51
57
|
if (fallback && typeof fallback === "function") {
|
|
52
58
|
return fetchWithRetry({
|
|
53
59
|
url: fallback(),
|
|
@@ -59,10 +65,10 @@ async function fetchWithRetry({ url, options = {}, retryTimes = defaultRetries,
|
|
|
59
65
|
if (error instanceof Error && error.message.includes("Json parse error")) {
|
|
60
66
|
throw error;
|
|
61
67
|
}
|
|
62
|
-
throw new Error(
|
|
68
|
+
throw new Error(`${PLUGIN_IDENTIFIER}: The request failed three times and has now been abandoned`);
|
|
63
69
|
} else {
|
|
64
70
|
retryDelay > 0 && await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
65
|
-
|
|
71
|
+
logger_default.log(`Trying again. Number of retries available\uFF1A${retryTimes - 1}`);
|
|
66
72
|
return await fetchWithRetry({
|
|
67
73
|
url,
|
|
68
74
|
options,
|
|
@@ -112,12 +118,12 @@ async function loadScript(url, attrs, maxRetries = defaultRetries, retryDelay =
|
|
|
112
118
|
script.onerror = (event) => {
|
|
113
119
|
if (retries < maxRetries) {
|
|
114
120
|
retries++;
|
|
115
|
-
|
|
121
|
+
logger_default.warn(`Failed to load script. Retrying... (${retries}/${maxRetries})`);
|
|
116
122
|
retryDelay > 0 && setTimeout(() => {
|
|
117
123
|
resolve(attemptLoad());
|
|
118
124
|
}, retryDelay);
|
|
119
125
|
} else {
|
|
120
|
-
|
|
126
|
+
logger_default.error(`Failed to load script after maximum retries. the url is: ${url}`);
|
|
121
127
|
resolve({
|
|
122
128
|
status: loadStatus.error,
|
|
123
129
|
event
|
|
@@ -136,7 +142,7 @@ function scriptWithRetry({ url, attrs = {}, retryTimes = defaultRetries, retryDe
|
|
|
136
142
|
const originOnerror = script.onerror;
|
|
137
143
|
const originOnLoad = script.onload;
|
|
138
144
|
script.onerror = async (event) => {
|
|
139
|
-
|
|
145
|
+
logger_default.warn(`Script load failed, retrying (${retryTimes + 1}/${defaultRetries}): ${url}`);
|
|
140
146
|
const scriptLoader = await loadScript(url, attrs, retryTimes, retryDelay, customCreateScript);
|
|
141
147
|
if (scriptLoader.status === loadStatus.success) {
|
|
142
148
|
originOnLoad?.call(script, scriptLoader?.event);
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/retry-plugin",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.14",
|
|
4
4
|
"author": "danpeen <dapeen.feng@gmail.com>",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -29,5 +29,8 @@
|
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@module-federation/runtime": "workspace:*"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@module-federation/sdk": "workspace:*"
|
|
32
35
|
}
|
|
33
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/retry-plugin",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.14",
|
|
4
4
|
"author": "danpeen <dapeen.feng@gmail.com>",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -28,6 +28,9 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@module-federation/runtime": "0.6.
|
|
31
|
+
"@module-federation/runtime": "0.6.14"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@module-federation/sdk": "0.6.14"
|
|
32
35
|
}
|
|
33
36
|
}
|