@next-core/easyops-runtime 0.12.26 → 0.12.27
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.
|
@@ -11,7 +11,7 @@ var _assertClassBrand2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
11
11
|
var _classPrivateFieldGet3 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldGet2"));
|
|
12
12
|
var _classPrivateFieldSet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldSet2"));
|
|
13
13
|
const RETRY_TIMEOUT_UNIT = 1000;
|
|
14
|
-
const RETRY_LIMIT =
|
|
14
|
+
const RETRY_LIMIT = 5;
|
|
15
15
|
var _url = /*#__PURE__*/new WeakMap();
|
|
16
16
|
var _ws = /*#__PURE__*/new WeakMap();
|
|
17
17
|
var _queuedMessages = /*#__PURE__*/new WeakMap();
|
|
@@ -68,10 +68,17 @@ function _connect() {
|
|
|
68
68
|
// eslint-disable-next-line no-console
|
|
69
69
|
console.log("WebSocket connecting ...");
|
|
70
70
|
const ws = new WebSocket((0, _classPrivateFieldGet3.default)(_url, this));
|
|
71
|
+
let resetRetryCountTimeout;
|
|
71
72
|
ws.addEventListener("open", e => {
|
|
72
73
|
// eslint-disable-next-line no-console
|
|
73
74
|
console.log("WebSocket open:", e);
|
|
74
|
-
|
|
75
|
+
|
|
76
|
+
// If server closes the socket not more than 1 second after it's opened,
|
|
77
|
+
// we should not reset the retry count.
|
|
78
|
+
resetRetryCountTimeout = setTimeout(() => {
|
|
79
|
+
resetRetryCountTimeout = undefined;
|
|
80
|
+
(0, _classPrivateFieldSet2.default)(_retryCount, this, 0);
|
|
81
|
+
}, 1e3);
|
|
75
82
|
for (const msg of (0, _classPrivateFieldGet3.default)(_queuedMessages, this)) {
|
|
76
83
|
ws.send(msg);
|
|
77
84
|
}
|
|
@@ -81,6 +88,9 @@ function _connect() {
|
|
|
81
88
|
if ((0, _classPrivateFieldGet3.default)(_closed, this)) {
|
|
82
89
|
return;
|
|
83
90
|
}
|
|
91
|
+
if (resetRetryCountTimeout !== undefined) {
|
|
92
|
+
clearTimeout(resetRetryCountTimeout);
|
|
93
|
+
}
|
|
84
94
|
// eslint-disable-next-line no-console
|
|
85
95
|
console.log("WebSocket close:", e);
|
|
86
96
|
for (const listener of (0, _classPrivateFieldGet3.default)(_closeListeners, this)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageService.js","names":["RETRY_TIMEOUT_UNIT","RETRY_LIMIT","_url","WeakMap","_ws","_queuedMessages","_messageListeners","_closeListeners","_retryCount","_closed","_MessageService_brand","WeakSet","MessageService","constructor","url","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Set","_classPrivateFieldSet2","send","data","_classPrivateFieldGet3","_assertClassBrand2","_connect","call","stringifiedData","JSON","stringify","readyState","WebSocket","OPEN","push","onMessage","listener","add","onClose","reset","length","clear","close","_classPrivateFieldGet2","exports","console","log","ws","addEventListener","e","msg","code","_reconnect","error","response","parse","delay","Math","pow","
|
|
1
|
+
{"version":3,"file":"MessageService.js","names":["RETRY_TIMEOUT_UNIT","RETRY_LIMIT","_url","WeakMap","_ws","_queuedMessages","_messageListeners","_closeListeners","_retryCount","_closed","_MessageService_brand","WeakSet","MessageService","constructor","url","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Set","_classPrivateFieldSet2","send","data","_classPrivateFieldGet3","_assertClassBrand2","_connect","call","stringifiedData","JSON","stringify","readyState","WebSocket","OPEN","push","onMessage","listener","add","onClose","reset","length","clear","close","_classPrivateFieldGet2","exports","console","log","ws","resetRetryCountTimeout","addEventListener","e","setTimeout","undefined","msg","clearTimeout","code","_reconnect","error","response","parse","delay","Math","pow","_this$retryCount","_this$retryCount2"],"sources":["../../../src/websocket/MessageService.ts"],"sourcesContent":["export type MessageListener<T = unknown> = (response: T) => void;\nexport type CloseListener = () => void;\n\nconst RETRY_TIMEOUT_UNIT = 1000;\nconst RETRY_LIMIT = 5;\n\nexport class MessageService {\n #url: string;\n #ws: WebSocket | undefined;\n #queuedMessages: string[] = [];\n #messageListeners = new Set<MessageListener>();\n #closeListeners = new Set<CloseListener>();\n #retryCount = 0;\n #closed = false;\n\n constructor(url: string) {\n this.#url = url;\n }\n\n #connect(): WebSocket {\n // eslint-disable-next-line no-console\n console.log(\"WebSocket connecting ...\");\n const ws = new WebSocket(this.#url);\n let resetRetryCountTimeout: number | undefined;\n ws.addEventListener(\"open\", (e) => {\n // eslint-disable-next-line no-console\n console.log(\"WebSocket open:\", e);\n\n // If server closes the socket not more than 1 second after it's opened,\n // we should not reset the retry count.\n resetRetryCountTimeout = setTimeout(() => {\n resetRetryCountTimeout = undefined;\n this.#retryCount = 0;\n }, 1e3) as unknown as number;\n\n for (const msg of this.#queuedMessages) {\n ws.send(msg);\n }\n this.#queuedMessages.length = 0;\n });\n ws.addEventListener(\"close\", (e) => {\n if (this.#closed) {\n return;\n }\n if (resetRetryCountTimeout !== undefined) {\n clearTimeout(resetRetryCountTimeout);\n }\n // eslint-disable-next-line no-console\n console.log(\"WebSocket close:\", e);\n for (const listener of this.#closeListeners) {\n listener();\n }\n // Error code 1000 means that the connection was closed normally.\n if (e.code !== 1000) {\n this.#reconnect();\n }\n });\n ws.addEventListener(\"error\", (e) => {\n // No need to reconnect in error event listener,\n // there will always be a close event along with the error event.\n // eslint-disable-next-line no-console\n console.error(\"WebSocket error:\", e);\n });\n ws.addEventListener(\"message\", (e: MessageEvent<string>) => {\n const response = JSON.parse(e.data);\n for (const listener of this.#messageListeners) {\n listener(response);\n }\n });\n return ws;\n }\n\n #reconnect() {\n // istanbul ignore next: currently can't mock this\n if (this.#retryCount >= RETRY_LIMIT) {\n // eslint-disable-next-line no-console\n console.error(\"WebSocket connect retry limit exceeded\");\n return;\n }\n // Double the timeout for each retry\n const delay = Math.pow(2, this.#retryCount) * RETRY_TIMEOUT_UNIT;\n // eslint-disable-next-line no-console\n console.log(\"WebSocket will reconnect after %d seconds\", delay / 1000);\n setTimeout(() => {\n this.#retryCount++;\n this.#ws = this.#connect();\n }, delay);\n }\n\n send(data: unknown): void {\n // Connect when data is sent for the first time\n if (!this.#ws) {\n this.#ws = this.#connect();\n }\n const stringifiedData = JSON.stringify(data);\n if (this.#ws.readyState === WebSocket.OPEN) {\n this.#ws.send(stringifiedData);\n } else {\n this.#queuedMessages.push(stringifiedData);\n }\n }\n\n onMessage<T = unknown>(listener: MessageListener<T>) {\n this.#messageListeners.add(listener as MessageListener<unknown>);\n }\n\n onClose(listener: CloseListener) {\n this.#closeListeners.add(listener);\n }\n\n reset() {\n this.#queuedMessages.length = 0;\n this.#messageListeners.clear();\n this.#closeListeners.clear();\n }\n\n close() {\n this.#closed = true;\n if (this.#ws?.readyState === WebSocket.OPEN) {\n this.#ws.close();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import _assertClassBrand from "@babel/runtime/helpers/assertClassBrand";
|
|
|
4
4
|
import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet2";
|
|
5
5
|
import _classPrivateFieldSet from "@babel/runtime/helpers/classPrivateFieldSet2";
|
|
6
6
|
const RETRY_TIMEOUT_UNIT = 1000;
|
|
7
|
-
const RETRY_LIMIT =
|
|
7
|
+
const RETRY_LIMIT = 5;
|
|
8
8
|
var _url = /*#__PURE__*/new WeakMap();
|
|
9
9
|
var _ws = /*#__PURE__*/new WeakMap();
|
|
10
10
|
var _queuedMessages = /*#__PURE__*/new WeakMap();
|
|
@@ -60,10 +60,17 @@ function _connect() {
|
|
|
60
60
|
// eslint-disable-next-line no-console
|
|
61
61
|
console.log("WebSocket connecting ...");
|
|
62
62
|
const ws = new WebSocket(_classPrivateFieldGet(_url, this));
|
|
63
|
+
let resetRetryCountTimeout;
|
|
63
64
|
ws.addEventListener("open", e => {
|
|
64
65
|
// eslint-disable-next-line no-console
|
|
65
66
|
console.log("WebSocket open:", e);
|
|
66
|
-
|
|
67
|
+
|
|
68
|
+
// If server closes the socket not more than 1 second after it's opened,
|
|
69
|
+
// we should not reset the retry count.
|
|
70
|
+
resetRetryCountTimeout = setTimeout(() => {
|
|
71
|
+
resetRetryCountTimeout = undefined;
|
|
72
|
+
_classPrivateFieldSet(_retryCount, this, 0);
|
|
73
|
+
}, 1e3);
|
|
67
74
|
for (const msg of _classPrivateFieldGet(_queuedMessages, this)) {
|
|
68
75
|
ws.send(msg);
|
|
69
76
|
}
|
|
@@ -73,6 +80,9 @@ function _connect() {
|
|
|
73
80
|
if (_classPrivateFieldGet(_closed, this)) {
|
|
74
81
|
return;
|
|
75
82
|
}
|
|
83
|
+
if (resetRetryCountTimeout !== undefined) {
|
|
84
|
+
clearTimeout(resetRetryCountTimeout);
|
|
85
|
+
}
|
|
76
86
|
// eslint-disable-next-line no-console
|
|
77
87
|
console.log("WebSocket close:", e);
|
|
78
88
|
for (const listener of _classPrivateFieldGet(_closeListeners, this)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageService.js","names":["RETRY_TIMEOUT_UNIT","RETRY_LIMIT","_url","WeakMap","_ws","_queuedMessages","_messageListeners","_closeListeners","_retryCount","_closed","_MessageService_brand","WeakSet","MessageService","constructor","url","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","Set","_classPrivateFieldSet","send","data","_classPrivateFieldGet","_assertClassBrand","_connect","call","stringifiedData","JSON","stringify","readyState","WebSocket","OPEN","push","onMessage","listener","add","onClose","reset","length","clear","close","_classPrivateFieldGet2","console","log","ws","addEventListener","e","msg","code","_reconnect","error","response","parse","delay","Math","pow","
|
|
1
|
+
{"version":3,"file":"MessageService.js","names":["RETRY_TIMEOUT_UNIT","RETRY_LIMIT","_url","WeakMap","_ws","_queuedMessages","_messageListeners","_closeListeners","_retryCount","_closed","_MessageService_brand","WeakSet","MessageService","constructor","url","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","Set","_classPrivateFieldSet","send","data","_classPrivateFieldGet","_assertClassBrand","_connect","call","stringifiedData","JSON","stringify","readyState","WebSocket","OPEN","push","onMessage","listener","add","onClose","reset","length","clear","close","_classPrivateFieldGet2","console","log","ws","resetRetryCountTimeout","addEventListener","e","setTimeout","undefined","msg","clearTimeout","code","_reconnect","error","response","parse","delay","Math","pow","_this$retryCount","_this$retryCount2"],"sources":["../../../src/websocket/MessageService.ts"],"sourcesContent":["export type MessageListener<T = unknown> = (response: T) => void;\nexport type CloseListener = () => void;\n\nconst RETRY_TIMEOUT_UNIT = 1000;\nconst RETRY_LIMIT = 5;\n\nexport class MessageService {\n #url: string;\n #ws: WebSocket | undefined;\n #queuedMessages: string[] = [];\n #messageListeners = new Set<MessageListener>();\n #closeListeners = new Set<CloseListener>();\n #retryCount = 0;\n #closed = false;\n\n constructor(url: string) {\n this.#url = url;\n }\n\n #connect(): WebSocket {\n // eslint-disable-next-line no-console\n console.log(\"WebSocket connecting ...\");\n const ws = new WebSocket(this.#url);\n let resetRetryCountTimeout: number | undefined;\n ws.addEventListener(\"open\", (e) => {\n // eslint-disable-next-line no-console\n console.log(\"WebSocket open:\", e);\n\n // If server closes the socket not more than 1 second after it's opened,\n // we should not reset the retry count.\n resetRetryCountTimeout = setTimeout(() => {\n resetRetryCountTimeout = undefined;\n this.#retryCount = 0;\n }, 1e3) as unknown as number;\n\n for (const msg of this.#queuedMessages) {\n ws.send(msg);\n }\n this.#queuedMessages.length = 0;\n });\n ws.addEventListener(\"close\", (e) => {\n if (this.#closed) {\n return;\n }\n if (resetRetryCountTimeout !== undefined) {\n clearTimeout(resetRetryCountTimeout);\n }\n // eslint-disable-next-line no-console\n console.log(\"WebSocket close:\", e);\n for (const listener of this.#closeListeners) {\n listener();\n }\n // Error code 1000 means that the connection was closed normally.\n if (e.code !== 1000) {\n this.#reconnect();\n }\n });\n ws.addEventListener(\"error\", (e) => {\n // No need to reconnect in error event listener,\n // there will always be a close event along with the error event.\n // eslint-disable-next-line no-console\n console.error(\"WebSocket error:\", e);\n });\n ws.addEventListener(\"message\", (e: MessageEvent<string>) => {\n const response = JSON.parse(e.data);\n for (const listener of this.#messageListeners) {\n listener(response);\n }\n });\n return ws;\n }\n\n #reconnect() {\n // istanbul ignore next: currently can't mock this\n if (this.#retryCount >= RETRY_LIMIT) {\n // eslint-disable-next-line no-console\n console.error(\"WebSocket connect retry limit exceeded\");\n return;\n }\n // Double the timeout for each retry\n const delay = Math.pow(2, this.#retryCount) * RETRY_TIMEOUT_UNIT;\n // eslint-disable-next-line no-console\n console.log(\"WebSocket will reconnect after %d seconds\", delay / 1000);\n setTimeout(() => {\n this.#retryCount++;\n this.#ws = this.#connect();\n }, delay);\n }\n\n send(data: unknown): void {\n // Connect when data is sent for the first time\n if (!this.#ws) {\n this.#ws = this.#connect();\n }\n const stringifiedData = JSON.stringify(data);\n if (this.#ws.readyState === WebSocket.OPEN) {\n this.#ws.send(stringifiedData);\n } else {\n this.#queuedMessages.push(stringifiedData);\n }\n }\n\n onMessage<T = unknown>(listener: MessageListener<T>) {\n this.#messageListeners.add(listener as MessageListener<unknown>);\n }\n\n onClose(listener: CloseListener) {\n this.#closeListeners.add(listener);\n }\n\n reset() {\n this.#queuedMessages.length = 0;\n this.#messageListeners.clear();\n this.#closeListeners.clear();\n }\n\n close() {\n this.#closed = true;\n if (this.#ws?.readyState === WebSocket.OPEN) {\n this.#ws.close();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/easyops-runtime",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.27",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/easyops-runtime",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"repository": {
|
|
@@ -45,20 +45,20 @@
|
|
|
45
45
|
"@next-api-sdk/cmdb-sdk": "^1.1.0",
|
|
46
46
|
"@next-api-sdk/micro-app-sdk": "^1.2.1",
|
|
47
47
|
"@next-api-sdk/micro-app-standalone-sdk": "^1.1.0",
|
|
48
|
-
"@next-core/cook": "^2.5.
|
|
49
|
-
"@next-core/http": "^1.2.
|
|
50
|
-
"@next-core/pipes": "^2.0.
|
|
51
|
-
"@next-core/runtime": "^1.55.
|
|
48
|
+
"@next-core/cook": "^2.5.1",
|
|
49
|
+
"@next-core/http": "^1.2.8",
|
|
50
|
+
"@next-core/pipes": "^2.0.26",
|
|
51
|
+
"@next-core/runtime": "^1.55.3",
|
|
52
52
|
"@next-core/types": "^1.13.0",
|
|
53
|
-
"@next-core/utils": "^1.7.
|
|
53
|
+
"@next-core/utils": "^1.7.26",
|
|
54
54
|
"js-yaml": "^3.14.1",
|
|
55
55
|
"lodash": "^4.17.21"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@next-core/build-next-libs": "^1.0.
|
|
59
|
-
"@next-core/test-next": "^1.1.
|
|
58
|
+
"@next-core/build-next-libs": "^1.0.20",
|
|
59
|
+
"@next-core/test-next": "^1.1.7",
|
|
60
60
|
"jest-websocket-mock": "^2.5.0",
|
|
61
61
|
"whatwg-fetch": "^3.6.20"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "4ef5792c651c8fbacdead37491cd1932eb398413"
|
|
64
64
|
}
|