@loadmill/executer 0.1.38 → 0.1.39
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/mill-version.js +1 -1
- package/dist/ws.d.ts +6 -3
- package/dist/ws.js +29 -2
- package/dist/ws.js.map +1 -1
- package/package.json +3 -3
- package/src/mill-version.ts +1 -1
- package/src/ws.ts +40 -5
package/dist/mill-version.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.millVersionString = exports.millVersion = void 0;
|
|
4
4
|
exports.millVersion = {
|
|
5
5
|
major: 9,
|
|
6
|
-
minor:
|
|
6
|
+
minor: 45,
|
|
7
7
|
patch: 0,
|
|
8
8
|
};
|
|
9
9
|
exports.millVersionString = exports.millVersion.major + "." + exports.millVersion.minor + "." + exports.millVersion.patch;
|
package/dist/ws.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import WebSocket from 'ws';
|
|
2
3
|
import { HttpResponseStatus, LoadmillHeaders } from '@loadmill/core/dist/request';
|
|
4
|
+
import { IncomingHttpHeaders } from 'http';
|
|
3
5
|
declare enum WSState {
|
|
4
6
|
CONNECTING = 0,
|
|
5
7
|
OPEN = 1,
|
|
@@ -23,6 +25,7 @@ export declare class WSRequest {
|
|
|
23
25
|
private addConnection;
|
|
24
26
|
private addEventListeners;
|
|
25
27
|
private addOnErrorListener;
|
|
28
|
+
private updateResponseOnError;
|
|
26
29
|
private addOnUpgradeListener;
|
|
27
30
|
private addOnOpenListener;
|
|
28
31
|
private addOnMessageListener;
|
|
@@ -56,11 +59,11 @@ export declare type WSRequestArguments = {
|
|
|
56
59
|
url: string;
|
|
57
60
|
};
|
|
58
61
|
export declare type WSResponse = {
|
|
59
|
-
status
|
|
62
|
+
status?: number;
|
|
60
63
|
res: {
|
|
61
|
-
statusMessage
|
|
64
|
+
statusMessage?: string;
|
|
62
65
|
};
|
|
63
|
-
header: LoadmillHeaders;
|
|
66
|
+
header: LoadmillHeaders | IncomingHttpHeaders;
|
|
64
67
|
req: {};
|
|
65
68
|
};
|
|
66
69
|
export {};
|
package/dist/ws.js
CHANGED
|
@@ -44,6 +44,7 @@ var ws_1 = __importDefault(require("ws")); // todo should be picked with other o
|
|
|
44
44
|
var promise_utils_1 = require("@loadmill/universal/dist/promise-utils");
|
|
45
45
|
var log_1 = __importDefault(require("@loadmill/universal/dist/log"));
|
|
46
46
|
var errors_1 = require("./errors");
|
|
47
|
+
var http_1 = require("http");
|
|
47
48
|
var WSState;
|
|
48
49
|
(function (WSState) {
|
|
49
50
|
WSState[WSState["CONNECTING"] = 0] = "CONNECTING";
|
|
@@ -219,7 +220,7 @@ var WSRequest = /** @class */ (function () {
|
|
|
219
220
|
value: function (response) {
|
|
220
221
|
return __awaiter(this, void 0, void 0, function () {
|
|
221
222
|
return __generator(this, function (_a) {
|
|
222
|
-
this.addOnErrorListener();
|
|
223
|
+
this.addOnErrorListener(response);
|
|
223
224
|
this.addOnUpgradeListener(response);
|
|
224
225
|
this.addOnOpenListener();
|
|
225
226
|
this.addOnMessageListener();
|
|
@@ -232,8 +233,18 @@ var WSRequest = /** @class */ (function () {
|
|
|
232
233
|
enumerable: false,
|
|
233
234
|
configurable: true,
|
|
234
235
|
writable: true,
|
|
235
|
-
value: function () {
|
|
236
|
+
value: function (response) {
|
|
236
237
|
var _this = this;
|
|
238
|
+
this.ws.addEventListener('error', function (event) {
|
|
239
|
+
log_1.default.debug('inside addEventListener error');
|
|
240
|
+
try {
|
|
241
|
+
var target = event.target;
|
|
242
|
+
_this.updateResponseOnError(target, response);
|
|
243
|
+
}
|
|
244
|
+
catch (e) {
|
|
245
|
+
log_1.default.error('Got an error inside addEventListener error', e);
|
|
246
|
+
}
|
|
247
|
+
});
|
|
237
248
|
this.ws.on('error', function (e) {
|
|
238
249
|
try {
|
|
239
250
|
log_1.default.debug('inside on error', e);
|
|
@@ -253,6 +264,22 @@ var WSRequest = /** @class */ (function () {
|
|
|
253
264
|
});
|
|
254
265
|
}
|
|
255
266
|
});
|
|
267
|
+
Object.defineProperty(WSRequest.prototype, "updateResponseOnError", {
|
|
268
|
+
enumerable: false,
|
|
269
|
+
configurable: true,
|
|
270
|
+
writable: true,
|
|
271
|
+
value: function (ws, response) {
|
|
272
|
+
var statusCode = ws._req.socket.parser.incoming.statusCode;
|
|
273
|
+
var statusMessage = ws._req.socket.parser.incoming.statusMessage;
|
|
274
|
+
var headers = ws._req.socket.parser.incoming.headers;
|
|
275
|
+
log_1.default.debug('addEventListener error statusCode', statusCode);
|
|
276
|
+
log_1.default.debug('addEventListener error statusMessage', statusMessage);
|
|
277
|
+
log_1.default.debug('addEventListener error headers', headers);
|
|
278
|
+
response.status = statusCode;
|
|
279
|
+
response.res.statusMessage = statusMessage;
|
|
280
|
+
response.header = headers;
|
|
281
|
+
}
|
|
282
|
+
});
|
|
256
283
|
Object.defineProperty(WSRequest.prototype, "addOnUpgradeListener", {
|
|
257
284
|
enumerable: false,
|
|
258
285
|
configurable: true,
|
package/dist/ws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA2B,CAAC,uEAAuE;AACnG,wEAA+D;AAC/D,qEAA+C;AAE/C,mCAAgD;
|
|
1
|
+
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loadmill/executer",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.39",
|
|
4
4
|
"description": "Loadmill executer library",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"ts-watch": "rimraf dist && tsc -w -p tsconfig.json",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
},
|
|
15
15
|
"license": "Apache-2.0",
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@loadmill/core": "0.3.
|
|
18
|
-
"@loadmill/universal": "0.3.
|
|
17
|
+
"@loadmill/core": "0.3.38",
|
|
18
|
+
"@loadmill/universal": "0.3.31",
|
|
19
19
|
"@types/estree": "^0.0.50",
|
|
20
20
|
"acorn": "^8.4.1",
|
|
21
21
|
"agentkeepalive": "^4.1.3",
|
package/src/mill-version.ts
CHANGED
package/src/ws.ts
CHANGED
|
@@ -3,6 +3,19 @@ import { delay } from '@loadmill/universal/dist/promise-utils';
|
|
|
3
3
|
import log from '@loadmill/universal/dist/log';
|
|
4
4
|
import { HttpResponseStatus, LoadmillHeaders } from '@loadmill/core/dist/request';
|
|
5
5
|
import { RequestFailuresError } from './errors';
|
|
6
|
+
import { ClientRequest, IncomingMessage, IncomingHttpHeaders } from 'http';
|
|
7
|
+
import { Socket } from 'net';
|
|
8
|
+
|
|
9
|
+
declare class WS extends WebSocket {
|
|
10
|
+
_req: WSClientRequest;
|
|
11
|
+
}
|
|
12
|
+
declare class WSClientRequest extends ClientRequest {
|
|
13
|
+
socket: Socket & { parser: ParserIncomingMessage };
|
|
14
|
+
}
|
|
15
|
+
declare class ParserIncomingMessage {
|
|
16
|
+
incoming: IncomingMessage;
|
|
17
|
+
}
|
|
18
|
+
|
|
6
19
|
|
|
7
20
|
enum WSState {
|
|
8
21
|
CONNECTING,
|
|
@@ -71,13 +84,23 @@ export class WSRequest {
|
|
|
71
84
|
}
|
|
72
85
|
|
|
73
86
|
private async addEventListeners(response: WSResponse) {
|
|
74
|
-
this.addOnErrorListener();
|
|
87
|
+
this.addOnErrorListener(response);
|
|
75
88
|
this.addOnUpgradeListener(response);
|
|
76
89
|
this.addOnOpenListener();
|
|
77
90
|
this.addOnMessageListener();
|
|
78
91
|
}
|
|
79
92
|
|
|
80
|
-
private addOnErrorListener() {
|
|
93
|
+
private addOnErrorListener(response: WSResponse) {
|
|
94
|
+
this.ws.addEventListener('error', event => {
|
|
95
|
+
log.debug('inside addEventListener error');
|
|
96
|
+
try {
|
|
97
|
+
const target = event.target as WS;
|
|
98
|
+
this.updateResponseOnError(target, response);
|
|
99
|
+
} catch (e) {
|
|
100
|
+
log.error('Got an error inside addEventListener error', e);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
|
|
81
104
|
this.ws.on('error', (e) => {
|
|
82
105
|
try {
|
|
83
106
|
log.debug('inside on error', e);
|
|
@@ -95,6 +118,18 @@ export class WSRequest {
|
|
|
95
118
|
});
|
|
96
119
|
}
|
|
97
120
|
|
|
121
|
+
private updateResponseOnError(ws: WS, response: WSResponse) {
|
|
122
|
+
const statusCode = ws._req.socket.parser.incoming.statusCode;
|
|
123
|
+
const statusMessage = ws._req.socket.parser.incoming.statusMessage;
|
|
124
|
+
const headers = ws._req.socket.parser.incoming.headers;
|
|
125
|
+
log.debug('addEventListener error statusCode', statusCode);
|
|
126
|
+
log.debug('addEventListener error statusMessage', statusMessage);
|
|
127
|
+
log.debug('addEventListener error headers', headers);
|
|
128
|
+
response.status = statusCode;
|
|
129
|
+
response.res.statusMessage = statusMessage;
|
|
130
|
+
response.header = headers;
|
|
131
|
+
}
|
|
132
|
+
|
|
98
133
|
private addOnUpgradeListener(response: WSResponse) {
|
|
99
134
|
this.ws.on('upgrade', (event) => {
|
|
100
135
|
try {
|
|
@@ -224,10 +259,10 @@ export type WSRequestArguments = {
|
|
|
224
259
|
};
|
|
225
260
|
|
|
226
261
|
export type WSResponse = {
|
|
227
|
-
status
|
|
262
|
+
status?: number;
|
|
228
263
|
res: {
|
|
229
|
-
statusMessage
|
|
264
|
+
statusMessage?: string;
|
|
230
265
|
};
|
|
231
|
-
header: LoadmillHeaders;
|
|
266
|
+
header: LoadmillHeaders | IncomingHttpHeaders;
|
|
232
267
|
req: {};
|
|
233
268
|
}
|