exisjs 0.1.2 → 0.1.4
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/README.md +8 -2
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +1 -0
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +9 -13
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +1 -6
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/test.d.ts +1 -0
- package/dist/cli/commands/test.d.ts.map +1 -1
- package/dist/cli/commands/test.js +7 -12
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/decorators/index.d.ts +59 -0
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +80 -11
- package/dist/decorators/index.js.map +1 -1
- package/dist/di/inject.d.ts +17 -0
- package/dist/di/inject.d.ts.map +1 -1
- package/dist/di/inject.js +17 -0
- package/dist/di/inject.js.map +1 -1
- package/dist/integrations/mongoose.d.ts.map +1 -1
- package/dist/integrations/mongoose.js +3 -2
- package/dist/integrations/mongoose.js.map +1 -1
- package/dist/module/module.d.ts +16 -0
- package/dist/module/module.d.ts.map +1 -1
- package/dist/module/module.js +16 -0
- package/dist/module/module.js.map +1 -1
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +44 -22
- package/dist/router/router.js.map +1 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +156 -95
- package/dist/server/app.js.map +1 -1
- package/dist/server/cluster.d.ts.map +1 -1
- package/dist/server/cluster.js +4 -9
- package/dist/server/cluster.js.map +1 -1
- package/dist/server/define.d.ts +14 -0
- package/dist/server/define.d.ts.map +1 -1
- package/dist/server/define.js +14 -0
- package/dist/server/define.js.map +1 -1
- package/dist/server/request.d.ts +136 -0
- package/dist/server/request.d.ts.map +1 -1
- package/dist/server/request.js +136 -0
- package/dist/server/request.js.map +1 -1
- package/dist/server/response.d.ts +186 -0
- package/dist/server/response.d.ts.map +1 -1
- package/dist/server/response.js +188 -1
- package/dist/server/response.js.map +1 -1
- package/dist/server/route.d.ts +28 -2
- package/dist/server/route.d.ts.map +1 -1
- package/dist/server/route.js +28 -2
- package/dist/server/route.js.map +1 -1
- package/dist/server/uws-adapter.d.ts +4 -1
- package/dist/server/uws-adapter.d.ts.map +1 -1
- package/dist/server/uws-adapter.js +55 -6
- package/dist/server/uws-adapter.js.map +1 -1
- package/dist/testing/expect.d.ts +56 -0
- package/dist/testing/expect.d.ts.map +1 -0
- package/dist/testing/expect.js +435 -0
- package/dist/testing/expect.js.map +1 -0
- package/dist/testing/index.d.ts +52 -2
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +147 -18
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/reporter.d.ts +5 -10
- package/dist/testing/reporter.d.ts.map +1 -1
- package/dist/testing/reporter.js +144 -59
- package/dist/testing/reporter.js.map +1 -1
- package/dist/websocket/server.d.ts.map +1 -1
- package/dist/websocket/server.js +5 -3
- package/dist/websocket/server.js.map +1 -1
- package/dist/websocket/socket.d.ts.map +1 -1
- package/dist/websocket/socket.js +8 -6
- package/dist/websocket/socket.js.map +1 -1
- package/package.json +2 -2
package/dist/testing/index.js
CHANGED
|
@@ -10,36 +10,164 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
13
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
20
|
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
16
38
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
40
|
};
|
|
19
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.assert = exports.mock = exports.afterEach = exports.beforeEach = exports.after = exports.before = exports.it = exports.describe = exports.test = void 0;
|
|
42
|
+
exports.expect = exports.assert = exports.ex = exports.mock = exports.afterEach = exports.beforeEach = exports.afterAll = exports.after = exports.beforeAll = exports.before = exports.it = exports.describe = exports.test = void 0;
|
|
21
43
|
exports.createTestContext = createTestContext;
|
|
22
44
|
__exportStar(require("./mocks"), exports);
|
|
23
45
|
__exportStar(require("./client"), exports);
|
|
24
|
-
const
|
|
46
|
+
const _nodeTest = __importStar(require("node:test"));
|
|
47
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
48
|
+
const node_util_1 = __importDefault(require("node:util"));
|
|
25
49
|
const client_1 = require("./client");
|
|
26
|
-
// Re-export native test runner features
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
50
|
+
// Re-export native test runner features with top-tier TypeScript support
|
|
51
|
+
function createTestApi(baseTestFn) {
|
|
52
|
+
const api = (name, optionsOrFn, maybeFn) => {
|
|
53
|
+
return baseTestFn(name, optionsOrFn, maybeFn);
|
|
54
|
+
};
|
|
55
|
+
api.only = (name, optionsOrFn, maybeFn) => baseTestFn.only(name, optionsOrFn, maybeFn);
|
|
56
|
+
api.skip = (name, optionsOrFn, maybeFn) => baseTestFn.skip(name, optionsOrFn, maybeFn);
|
|
57
|
+
api.todo = (name, optionsOrFn, maybeFn) => baseTestFn.todo(name, optionsOrFn, maybeFn);
|
|
58
|
+
api.each = function (cases) {
|
|
59
|
+
return (name, fn) => {
|
|
60
|
+
for (const c of cases) {
|
|
61
|
+
const testArgs = Array.isArray(c) ? c : [c];
|
|
62
|
+
const testName = node_util_1.default.format(name, ...testArgs);
|
|
63
|
+
baseTestFn(testName, () => fn(...testArgs));
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
return api;
|
|
68
|
+
}
|
|
69
|
+
exports.test = createTestApi(_nodeTest.test);
|
|
70
|
+
exports.describe = createTestApi(_nodeTest.describe);
|
|
71
|
+
exports.it = createTestApi(_nodeTest.it);
|
|
72
|
+
exports.before = _nodeTest.before;
|
|
73
|
+
exports.beforeAll = _nodeTest.before;
|
|
74
|
+
exports.after = _nodeTest.after;
|
|
75
|
+
exports.afterAll = _nodeTest.after;
|
|
76
|
+
exports.beforeEach = _nodeTest.beforeEach;
|
|
77
|
+
exports.afterEach = _nodeTest.afterEach;
|
|
78
|
+
exports.mock = _nodeTest.mock;
|
|
79
|
+
function applyMockPolyfill(fn) {
|
|
80
|
+
if (!fn.mock)
|
|
81
|
+
return fn;
|
|
82
|
+
fn.mockRestore = () => fn.mock.restore();
|
|
83
|
+
fn.mockImplementation = (impl) => {
|
|
84
|
+
fn.mock.mockImplementation(impl);
|
|
85
|
+
return fn;
|
|
86
|
+
};
|
|
87
|
+
fn.mockResolvedValue = (val) => {
|
|
88
|
+
fn.mock.mockImplementation(async () => val);
|
|
89
|
+
return fn;
|
|
90
|
+
};
|
|
91
|
+
fn.mockReturnValue = (val) => {
|
|
92
|
+
fn.mock.mockImplementation(() => val);
|
|
93
|
+
return fn;
|
|
94
|
+
};
|
|
95
|
+
fn.mockRejectedValue = (err) => {
|
|
96
|
+
fn.mock.mockImplementation(async () => {
|
|
97
|
+
throw err;
|
|
98
|
+
});
|
|
99
|
+
return fn;
|
|
100
|
+
};
|
|
101
|
+
fn.mockClear = () => fn.mock.resetCalls();
|
|
102
|
+
return fn;
|
|
103
|
+
}
|
|
104
|
+
exports.ex = {
|
|
105
|
+
fn: (impl) => applyMockPolyfill(_nodeTest.mock.fn(impl)),
|
|
106
|
+
spyOn: (obj, methodName) => applyMockPolyfill(_nodeTest.mock.method(obj, methodName)),
|
|
107
|
+
timers: _nodeTest.mock.timers,
|
|
108
|
+
mock: (specifier, factory) => {
|
|
109
|
+
if (factory) {
|
|
110
|
+
const mockExports = factory();
|
|
111
|
+
const options = {};
|
|
112
|
+
if (mockExports.default) {
|
|
113
|
+
options.defaultExport = mockExports.default;
|
|
114
|
+
const { default: _, ...named } = mockExports;
|
|
115
|
+
options.namedExports = named;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
options.namedExports = mockExports;
|
|
119
|
+
}
|
|
120
|
+
_nodeTest.mock.module(specifier, options);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
_nodeTest.mock.module(specifier);
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
setSystemTime: (time) => {
|
|
127
|
+
try {
|
|
128
|
+
_nodeTest.mock.timers.enable({
|
|
129
|
+
apis: ['Date', 'setTimeout', 'setInterval', 'setImmediate'],
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
/* ignore if already enabled */
|
|
134
|
+
}
|
|
135
|
+
_nodeTest.mock.timers.setTime(time.valueOf());
|
|
136
|
+
},
|
|
137
|
+
advanceTimersByTime: (ms) => {
|
|
138
|
+
try {
|
|
139
|
+
_nodeTest.mock.timers.enable({
|
|
140
|
+
apis: ['Date', 'setTimeout', 'setInterval', 'setImmediate'],
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
/* ignore */
|
|
145
|
+
}
|
|
146
|
+
_nodeTest.mock.timers.tick(ms);
|
|
147
|
+
},
|
|
148
|
+
useFakeTimers: () => {
|
|
149
|
+
try {
|
|
150
|
+
_nodeTest.mock.timers.enable({
|
|
151
|
+
apis: ['Date', 'setTimeout', 'setInterval', 'setImmediate'],
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
/* ignore */
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
useRealTimers: () => {
|
|
159
|
+
_nodeTest.mock.timers.reset();
|
|
160
|
+
},
|
|
161
|
+
clearAllMocks: () => _nodeTest.mock.reset(),
|
|
162
|
+
};
|
|
163
|
+
exports.assert = _nodeTest.assert || node_assert_1.default;
|
|
164
|
+
var expect_1 = require("./expect");
|
|
165
|
+
Object.defineProperty(exports, "expect", { enumerable: true, get: function () { return expect_1.expect; } });
|
|
38
166
|
function createTestContext(app) {
|
|
39
167
|
process.on('unhandledRejection', (reason) => {
|
|
40
168
|
console.error('UNHANDLED REJECTION DETECTED:', reason);
|
|
41
169
|
});
|
|
42
|
-
(0,
|
|
170
|
+
(0, exports.before)(async () => {
|
|
43
171
|
if (typeof app.create === 'function') {
|
|
44
172
|
await app.create();
|
|
45
173
|
}
|
|
@@ -69,7 +197,7 @@ function createTestContext(app) {
|
|
|
69
197
|
// fully resolve before the test suite starts.
|
|
70
198
|
await new Promise((r) => setTimeout(r, 50));
|
|
71
199
|
});
|
|
72
|
-
(0,
|
|
200
|
+
(0, exports.after)(async () => {
|
|
73
201
|
// Attempt graceful shutdown of database connections to let event loop exit
|
|
74
202
|
console.log('Testing: executing after hook');
|
|
75
203
|
// Mongoose
|
|
@@ -79,7 +207,8 @@ function createTestContext(app) {
|
|
|
79
207
|
const requireFromCwd = createRequire(process.cwd() + '/package.json');
|
|
80
208
|
const mongoose = requireFromCwd('mongoose');
|
|
81
209
|
if (mongoose.connection && mongoose.connection.readyState !== 0) {
|
|
82
|
-
if (mongoose.connection.readyState === 2) {
|
|
210
|
+
if (mongoose.connection.readyState === 2) {
|
|
211
|
+
// 2 = connecting
|
|
83
212
|
console.log('Testing: awaiting mongoose connection');
|
|
84
213
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
85
214
|
await mongoose.connection.asPromise().catch(() => { });
|
|
@@ -115,7 +244,7 @@ function createTestContext(app) {
|
|
|
115
244
|
catch {
|
|
116
245
|
// Redis not used
|
|
117
246
|
}
|
|
118
|
-
// Call the built-in graceful shutdown which cleans up the queue,
|
|
247
|
+
// Call the built-in graceful shutdown which cleans up the queue,
|
|
119
248
|
// cron jobs, database connections, and running servers.
|
|
120
249
|
if (typeof app.close === 'function') {
|
|
121
250
|
console.log('Testing: app.close()');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Custom Jest-like Test Reporter for ExisJS
|
|
2
|
+
* Custom Jest/Vitest-like Test Reporter for ExisJS
|
|
3
|
+
*
|
|
4
|
+
* Consumes the async iterable of TestEvent objects emitted by Node's
|
|
5
|
+
* built-in test runner (node:test) and renders Jest-style terminal output.
|
|
3
6
|
*/
|
|
4
|
-
|
|
5
|
-
declare const RED_BG = "\u001B[41m\u001B[30m";
|
|
6
|
-
declare const GREEN = "\u001B[32m";
|
|
7
|
-
declare const RED = "\u001B[31m";
|
|
8
|
-
declare const DIM = "\u001B[90m";
|
|
9
|
-
declare const BOLD = "\u001B[1m";
|
|
10
|
-
declare const RESET = "\u001B[0m";
|
|
11
|
-
declare const CHECK = "\u221A";
|
|
12
|
-
declare const CROSS = "\u00D7";
|
|
7
|
+
export {};
|
|
13
8
|
//# sourceMappingURL=reporter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/testing/reporter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/testing/reporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/testing/reporter.js
CHANGED
|
@@ -1,101 +1,186 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Custom Jest-like Test Reporter for ExisJS
|
|
3
|
+
* Custom Jest/Vitest-like Test Reporter for ExisJS
|
|
4
|
+
*
|
|
5
|
+
* Consumes the async iterable of TestEvent objects emitted by Node's
|
|
6
|
+
* built-in test runner (node:test) and renders Jest-style terminal output.
|
|
4
7
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
13
|
+
const node_url_1 = require("node:url");
|
|
14
|
+
// ─── Colors (respects NO_COLOR / non-TTY) ──────────────────────────────────
|
|
15
|
+
const supportsColor = !process.env.NO_COLOR && (process.stdout.isTTY ?? false);
|
|
16
|
+
function paint(code) {
|
|
17
|
+
return supportsColor ? code : '';
|
|
18
|
+
}
|
|
19
|
+
const GREEN_BG = paint('\x1b[42m\x1b[30m');
|
|
20
|
+
const RED_BG = paint('\x1b[41m\x1b[30m');
|
|
21
|
+
const GREEN = paint('\x1b[32m');
|
|
22
|
+
const RED = paint('\x1b[31m');
|
|
23
|
+
const YELLOW = paint('\x1b[33m');
|
|
24
|
+
const DIM = paint('\x1b[90m');
|
|
25
|
+
const BOLD = paint('\x1b[1m');
|
|
26
|
+
const RESET = paint('\x1b[0m');
|
|
12
27
|
const CHECK = '√';
|
|
13
28
|
const CROSS = '×';
|
|
29
|
+
const SKIP = '○';
|
|
30
|
+
const TODO = '‼';
|
|
31
|
+
const SLOW_TEST_MS = 100; // tests slower than this get a yellow duration flag
|
|
32
|
+
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
33
|
+
function relFile(file) {
|
|
34
|
+
const cleaned = file.startsWith('file://') ? (0, node_url_1.fileURLToPath)(file) : file;
|
|
35
|
+
return node_path_1.default.relative(process.cwd(), cleaned).split(node_path_1.default.sep).join('/');
|
|
36
|
+
}
|
|
37
|
+
/** Filters a stack trace down to frames that point at user code. */
|
|
38
|
+
function cleanStack(stack) {
|
|
39
|
+
if (!stack)
|
|
40
|
+
return '';
|
|
41
|
+
return stack
|
|
42
|
+
.split('\n')
|
|
43
|
+
.filter((line) => !/node:internal|node_modules[\\/]/.test(line))
|
|
44
|
+
.slice(0, 6) // cap depth so one failure doesn't dominate the terminal
|
|
45
|
+
.join('\n');
|
|
46
|
+
}
|
|
47
|
+
function formatDuration(ms) {
|
|
48
|
+
if (ms === undefined)
|
|
49
|
+
return '';
|
|
50
|
+
const rounded = Math.round(ms);
|
|
51
|
+
const color = rounded > SLOW_TEST_MS ? YELLOW : DIM;
|
|
52
|
+
return ` ${color}(${rounded} ms)${RESET}`;
|
|
53
|
+
}
|
|
54
|
+
// ─── Reporter ───────────────────────────────────────────────────────────────
|
|
14
55
|
module.exports = async function* customReporter(source) {
|
|
15
56
|
let passedTests = 0;
|
|
16
57
|
let failedTests = 0;
|
|
58
|
+
let skippedTests = 0;
|
|
17
59
|
let totalTests = 0;
|
|
18
60
|
let passedSuites = 0;
|
|
19
61
|
let failedSuites = 0;
|
|
20
62
|
const startTime = Date.now();
|
|
63
|
+
const failures = [];
|
|
21
64
|
const filesMap = new Map();
|
|
22
65
|
const getFileData = (file) => {
|
|
23
|
-
|
|
24
|
-
|
|
66
|
+
let fd = filesMap.get(file);
|
|
67
|
+
if (!fd) {
|
|
68
|
+
fd = {
|
|
69
|
+
output: [],
|
|
70
|
+
failed: false,
|
|
71
|
+
passedCount: 0,
|
|
72
|
+
failedCount: 0,
|
|
73
|
+
skippedCount: 0,
|
|
74
|
+
};
|
|
75
|
+
filesMap.set(file, fd);
|
|
25
76
|
}
|
|
26
|
-
return
|
|
77
|
+
return fd;
|
|
27
78
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
//
|
|
38
|
-
if (nesting === 0) {
|
|
39
|
-
const relPath = file
|
|
79
|
+
try {
|
|
80
|
+
for await (const event of source) {
|
|
81
|
+
const { type, data } = event;
|
|
82
|
+
if (!data?.file)
|
|
83
|
+
continue;
|
|
84
|
+
const { name, nesting, details, file, skip, todo } = data;
|
|
85
|
+
const fileData = getFileData(file);
|
|
86
|
+
const isSuite = details?.type === 'suite';
|
|
87
|
+
const indent = ' '.repeat(Math.max(nesting, 0));
|
|
88
|
+
// ─── File-level suite completion (nesting 0) ─────────────────────────
|
|
89
|
+
if (nesting === 0 && (type === 'test:pass' || type === 'test:fail')) {
|
|
90
|
+
const relPath = relFile(file);
|
|
40
91
|
const badge = fileData.failed
|
|
41
92
|
? `${RED_BG}${BOLD} FAIL ${RESET}`
|
|
42
93
|
: `${GREEN_BG}${BOLD} PASS ${RESET}`;
|
|
43
|
-
yield `\n ${badge} ${DIM}
|
|
44
|
-
for (const line of fileData.output)
|
|
94
|
+
yield `\n ${badge} ${DIM}exis${RESET} ${relPath}\n`;
|
|
95
|
+
for (const line of fileData.output)
|
|
45
96
|
yield line;
|
|
46
|
-
|
|
47
|
-
if (fileData.failed) {
|
|
97
|
+
if (fileData.failed)
|
|
48
98
|
failedSuites++;
|
|
49
|
-
|
|
50
|
-
else {
|
|
99
|
+
else
|
|
51
100
|
passedSuites++;
|
|
52
|
-
}
|
|
53
101
|
continue;
|
|
54
102
|
}
|
|
55
|
-
|
|
103
|
+
// ─── Skipped / todo tests ─────────────────────────────────────────────
|
|
104
|
+
if (type === 'test:skip' || skip) {
|
|
105
|
+
fileData.output.push(`${indent} ${DIM}${SKIP} ${name} (skipped)${RESET}\n`);
|
|
106
|
+
skippedTests++;
|
|
107
|
+
totalTests++;
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (type === 'test:todo' || todo) {
|
|
111
|
+
fileData.output.push(`${indent} ${YELLOW}${TODO} ${name} (todo)${RESET}\n`);
|
|
112
|
+
skippedTests++;
|
|
113
|
+
totalTests++;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
// ─── Suite headers (describe blocks) ──────────────────────────────────
|
|
117
|
+
if (isSuite) {
|
|
118
|
+
if (type === 'test:fail')
|
|
119
|
+
fileData.failed = true;
|
|
120
|
+
fileData.output.push(`${indent} ${BOLD}${name}${RESET}\n`);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
// ─── Individual tests ──────────────────────────────────────────────────
|
|
56
124
|
if (type === 'test:pass') {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
? ` ${DIM}(${Math.round(duration_ms)} ms)${RESET}`
|
|
63
|
-
: '';
|
|
64
|
-
fileData.output.push(`${' '.repeat(nesting)} ${GREEN}${CHECK}${RESET} ${DIM}${name}${timeStr}\n`);
|
|
65
|
-
passedTests++;
|
|
66
|
-
totalTests++;
|
|
67
|
-
}
|
|
125
|
+
const timeStr = formatDuration(details?.duration_ms);
|
|
126
|
+
fileData.output.push(`${indent} ${GREEN}${CHECK}${RESET} ${DIM}${name}${RESET}${timeStr}\n`);
|
|
127
|
+
passedTests++;
|
|
128
|
+
totalTests++;
|
|
129
|
+
continue;
|
|
68
130
|
}
|
|
69
131
|
if (type === 'test:fail') {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
fileData.output.push(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
'
|
|
81
|
-
fileData.output.push(`\n${RED}${errMsg}${RESET}\n`);
|
|
82
|
-
failedTests++;
|
|
83
|
-
totalTests++;
|
|
84
|
-
fileData.failed = true;
|
|
132
|
+
const timeStr = formatDuration(details?.duration_ms);
|
|
133
|
+
fileData.output.push(`${indent} ${RED}${CROSS}${RESET} ${RED}${name}${RESET}${timeStr}\n`);
|
|
134
|
+
const err = details?.error;
|
|
135
|
+
const errMsg = err?.message || err?.cause?.message || 'Unknown error';
|
|
136
|
+
const stack = cleanStack(err?.stack || err?.cause?.stack);
|
|
137
|
+
fileData.output.push(`\n${indent} ${RED}${errMsg}${RESET}\n`);
|
|
138
|
+
if (stack) {
|
|
139
|
+
fileData.output.push(stack
|
|
140
|
+
.split('\n')
|
|
141
|
+
.map((l) => `${indent} ${DIM}${l}${RESET}`)
|
|
142
|
+
.join('\n') + '\n\n');
|
|
85
143
|
}
|
|
144
|
+
failedTests++;
|
|
145
|
+
totalTests++;
|
|
146
|
+
fileData.failed = true;
|
|
147
|
+
failures.push({
|
|
148
|
+
file: relFile(file),
|
|
149
|
+
fullName: name,
|
|
150
|
+
errMsg,
|
|
151
|
+
stack,
|
|
152
|
+
});
|
|
86
153
|
}
|
|
87
154
|
}
|
|
88
155
|
}
|
|
156
|
+
catch (reporterErr) {
|
|
157
|
+
// Never let the reporter itself crash the test run silently.
|
|
158
|
+
yield `\n${RED}${BOLD}Reporter error:${RESET} ${reporterErr.message}\n`;
|
|
159
|
+
}
|
|
160
|
+
// ─── Failure summary (Vitest/Jest style, scannable at a glance) ───────────
|
|
161
|
+
if (failures.length > 0) {
|
|
162
|
+
yield `\n${BOLD}${RED}Failed Tests ${failures.length}${RESET}\n\n`;
|
|
163
|
+
for (const f of failures) {
|
|
164
|
+
yield ` ${RED}${CROSS}${RESET} ${f.file} ${DIM}>${RESET} ${f.fullName}\n`;
|
|
165
|
+
yield ` ${DIM}${f.errMsg}${RESET}\n`;
|
|
166
|
+
}
|
|
167
|
+
yield '\n';
|
|
168
|
+
}
|
|
169
|
+
// ─── Final summary ──────────────────────────────────────────────────────
|
|
89
170
|
const duration = ((Date.now() - startTime) / 1000).toFixed(3);
|
|
90
|
-
yield
|
|
171
|
+
yield `${BOLD}Test Suites:${RESET} `;
|
|
91
172
|
if (failedSuites > 0)
|
|
92
173
|
yield `${RED}${BOLD}${failedSuites} failed${RESET}, `;
|
|
93
174
|
yield `${GREEN}${BOLD}${passedSuites} passed${RESET}, ${passedSuites + failedSuites} total\n`;
|
|
94
175
|
yield `${BOLD}Tests: ${RESET} `;
|
|
95
176
|
if (failedTests > 0)
|
|
96
177
|
yield `${RED}${BOLD}${failedTests} failed${RESET}, `;
|
|
178
|
+
if (skippedTests > 0)
|
|
179
|
+
yield `${YELLOW}${skippedTests} skipped${RESET}, `;
|
|
97
180
|
yield `${GREEN}${BOLD}${passedTests} passed${RESET}, ${totalTests} total\n`;
|
|
98
|
-
yield `${BOLD}Snapshots: ${RESET} 0 total\n`;
|
|
99
181
|
yield `${BOLD}Time: ${RESET} ${duration} s\n\n`;
|
|
182
|
+
if (failedTests > 0 || failedSuites > 0) {
|
|
183
|
+
process.exitCode = 1;
|
|
184
|
+
}
|
|
100
185
|
};
|
|
101
186
|
//# sourceMappingURL=reporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/testing/reporter.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/testing/reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/websocket/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C;;GAEG;AACH,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,KAAK,CAAwC;IAErD,OAAO,CAAC,OAAO,CAA2B;IACnC,eAAe,UAAQ;IAC9B,OAAO,CAAC,YAAY,CAA8B;;IAMlD;;;OAGG;IACH,cAAc,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/websocket/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C;;GAEG;AACH,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,KAAK,CAAwC;IAErD,OAAO,CAAC,OAAO,CAA2B;IACnC,eAAe,UAAQ;IAC9B,OAAO,CAAC,YAAY,CAA8B;;IAMlD;;;OAGG;IACH,cAAc,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IASlC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAcpD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAWtD;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAkBnE;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IASzC;;;OAGG;IACH,EAAE,CAAC,IAAI,EAAE,MAAM;sBAEG,MAAM,SAAS,OAAO;;IAMxC;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC;IAKlD;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,EAAE;IAWxE;;OAEG;IACH,KAAK,IAAI,IAAI;CAQd"}
|
package/dist/websocket/server.js
CHANGED
|
@@ -41,9 +41,11 @@ class ExisWebSocketServer {
|
|
|
41
41
|
*/
|
|
42
42
|
track(socket) {
|
|
43
43
|
this.clients.add(socket);
|
|
44
|
-
socket.raw
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
if (socket.raw) {
|
|
45
|
+
socket.raw.once('close', () => {
|
|
46
|
+
this.clients.delete(socket);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
47
49
|
}
|
|
48
50
|
/**
|
|
49
51
|
* Subscribes a socket to a room.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/websocket/server.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,mBAAmB;IAQ9B;QAPA,uDAAuD;QAC/C,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAA;QACrD,gCAAgC;QACxB,YAAO,GAAG,IAAI,GAAG,EAAiB,CAAA;QACnC,oBAAe,GAAG,KAAK,CAAA;QACtB,iBAAY,GAA0B,IAAI,CAAA;QAGhD,IAAI,CAAC,cAAc,EAAE,CAAA;IACvB,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;IAC7B,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAA;oBACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;oBAC3B,SAAQ;gBACV,CAAC;gBACD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA;gBACtB,MAAM,CAAC,KAAK,EAAE,CAAA;YAChB,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAA;QACT,sDAAsD;QACtD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAqB;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/websocket/server.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,mBAAmB;IAQ9B;QAPA,uDAAuD;QAC/C,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAA;QACrD,gCAAgC;QACxB,YAAO,GAAG,IAAI,GAAG,EAAiB,CAAA;QACnC,oBAAe,GAAG,KAAK,CAAA;QACtB,iBAAY,GAA0B,IAAI,CAAA;QAGhD,IAAI,CAAC,cAAc,EAAE,CAAA;IACvB,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;IAC7B,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAA;oBACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;oBAC3B,SAAQ;gBACV,CAAC;gBACD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA;gBACtB,MAAM,CAAC,KAAK,EAAE,CAAA;YAChB,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAA;QACT,sDAAsD;QACtD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAqB;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC7B,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAqB,EAAE,IAAY;QAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;YACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEnB,0CAA0C;QAC1C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,MAAqB,EAAE,IAAY;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACtB,8CAA8C;YAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAY,EAAE,IAAa,EAAE,OAAuB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,MAAM,OAAO,GACX,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACtB,CAAC,CAAE,IAAqC,CAAA;QAE5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,KAAK,OAAO;gBAAE,SAAQ;YAEhC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,oBAAoB,EAAE,CAAC;gBACrD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,KAAa,EAAE,IAAc;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,EAAE,CAAC,IAAY;QACb,OAAO;YACL,IAAI,EAAE,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE;gBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YACrC,CAAC;SACF,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,IAAY;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IAC/C,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,IAAY;QACxB,MAAM,MAAM,GAAgD,EAAE,CAAA;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,YAAY;YAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACvD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;QAC5C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;CACF;AAnKD,kDAmKC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/websocket/socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEvC;;;GAGG;AACH,qBAAa,aAAa;IACxB,SAAgB,GAAG,EAAE,SAAS,CAAA;IAC9B,SAAgB,GAAG,EAAE,OAAO,CAAA;IAC5B,SAAgB,EAAE,EAAE,MAAM,CAAA;IACnB,KAAK,cAAoB;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAK;IAC9B,OAAO,SAAI;IAClB,OAAO,CAAC,YAAY,CAAI;IACjB,OAAO,UAAO;IACrB,SAAgB,MAAM,EAAE,mBAAmB,CAAA;gBAE/B,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/websocket/socket.ts"],"names":[],"mappings":"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"}
|
package/dist/websocket/socket.js
CHANGED
|
@@ -18,12 +18,14 @@ class ExisWebSocket {
|
|
|
18
18
|
this.server = server;
|
|
19
19
|
this.id = (0, node_crypto_1.randomUUID)();
|
|
20
20
|
// Listen for pong messages to verify connection is alive and track latency
|
|
21
|
-
this.raw
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
if (this.raw) {
|
|
22
|
+
this.raw.on('pong', () => {
|
|
23
|
+
this.isAlive = true;
|
|
24
|
+
if (this.lastPingTime > 0) {
|
|
25
|
+
this.latency = Date.now() - this.lastPingTime;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Internal method called by the server heartbeat
|