Skip to content

Commit 50918e4

Browse files
authored
Fix error on WS client closure (#110)
* Fix error on WS client closure * Add hawk catcher * Add env files to ignore * Remove hawk token from build args * fix lint * Run all files mutations tests only if any are changed in the package
1 parent 7a35104 commit 50918e4

File tree

7 files changed

+92
-1
lines changed

7 files changed

+92
-1
lines changed

.github/actions/mutation-tests-all-files/action.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,20 @@ runs:
1919
- name: Setup environment
2020
uses: ./.github/actions/setup
2121

22+
- name: Get changed files
23+
uses: tj-actions/[email protected]
24+
id: changed-files
25+
with:
26+
files_yaml: |
27+
src:
28+
- 'src/**/*.ts'
29+
- '!src/**/*.spec.ts'
30+
- '!src/**/__mocks__/**'
31+
separator: "','"
32+
path: ${{ inputs.working-directory }}
33+
2234
- name: Run mutation tests
35+
if: steps.changed-files.outputs.src_any_changed == 'true'
2336
env:
2437
STRYKER_DASHBOARD_API_KEY: ${{ inputs.stryker_dashboard_api_key }}
2538
shell: bash

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,6 @@ reports/
2525
*.tsbuildinfo
2626

2727
.DS_Store
28+
29+
# ENV
30+
**/.env
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
WSS_PORT=8080
2+
HAWK_TOKEN=

packages/ot-server/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"dependencies": {
1717
"@editorjs/collaboration-manager": "workspace:^",
1818
"@editorjs/model": "workspace:^",
19+
"@hawk.so/nodejs": "^3.1.5",
1920
"dotenv": "^16.4.7",
2021
"ws": "^8.18.1"
2122
},

packages/ot-server/src/OTServer.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ export class OTServer {
7474
* @param ws - client websocket
7575
*/
7676
#onClose(ws: WebSocket): void {
77-
const [documentId, documentClient] = this.#clients.entries().find(([, clients]) => clients.has(ws)) ?? [];
77+
const [documentId, documentClient] = Array.from(this.#clients.entries())
78+
.find(([, clients]) => clients.has(ws)) ?? [];
7879

7980
if (documentId === undefined || documentClient === undefined) {
8081
return;

packages/ot-server/src/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
import { OTServer } from './OTServer.js';
22
import { config } from 'dotenv';
3+
import HawkCatcher from '@hawk.so/nodejs';
4+
import process from 'process';
35

46
config();
57

68
/**
79
* main function
810
*/
911
function main(): void {
12+
if (process.env.NODE_ENV === 'production' && process.env.HAWK_TOKEN !== undefined) {
13+
HawkCatcher.init(process.env.HAWK_TOKEN);
14+
}
15+
1016
const otServer = new OTServer();
1117

1218
otServer.start();

yarn.lock

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,7 @@ __metadata:
12141214
dependencies:
12151215
"@editorjs/collaboration-manager": "workspace:^"
12161216
"@editorjs/model": "workspace:^"
1217+
"@hawk.so/nodejs": "npm:^3.1.5"
12171218
"@types/eslint": "npm:^9.6.1"
12181219
"@types/jest": "npm:^29.5.14"
12191220
"@types/ws": "npm:^8.18.1"
@@ -1732,6 +1733,26 @@ __metadata:
17321733
languageName: node
17331734
linkType: hard
17341735

1736+
"@hawk.so/nodejs@npm:^3.1.5":
1737+
version: 3.1.5
1738+
resolution: "@hawk.so/nodejs@npm:3.1.5"
1739+
dependencies:
1740+
"@hawk.so/types": "npm:^0.1.15"
1741+
axios: "npm:^0.21.1"
1742+
stack-trace: "npm:^0.0.10"
1743+
checksum: 9fcf55f6bec4ebbd3ff14a7be4145359dbf48c6c26d76e61245c9e9fcae5580cbbd891bb053d75b813131b0b1cb22445f64d7f5178f0414ae18880bf0043fb2b
1744+
languageName: node
1745+
linkType: hard
1746+
1747+
"@hawk.so/types@npm:^0.1.15":
1748+
version: 0.1.28
1749+
resolution: "@hawk.so/types@npm:0.1.28"
1750+
dependencies:
1751+
"@types/mongodb": "npm:^3.5.34"
1752+
checksum: 6bc8fd78eaea5c4e8c59c4d9ff5028ea17e7d7d259798ad33955b3f735080f5b7ab3bf3800ec20ff5fe9feff05979d81359e14646ee4c4d1afc2cbfc596dc2c8
1753+
languageName: node
1754+
linkType: hard
1755+
17351756
"@humanfs/core@npm:^0.19.1":
17361757
version: 0.19.1
17371758
resolution: "@humanfs/core@npm:0.19.1"
@@ -2682,6 +2703,15 @@ __metadata:
26822703
languageName: node
26832704
linkType: hard
26842705

2706+
"@types/bson@npm:*":
2707+
version: 4.0.5
2708+
resolution: "@types/bson@npm:4.0.5"
2709+
dependencies:
2710+
"@types/node": "npm:*"
2711+
checksum: b3e94a2832de82ea6d101fe2efcc65f32de131d25b22b1ff585cb74bc904fbcdb6cb976fc21adf608b8fcb43075e100693f5f321ffa170ff9a7847a3d1e8fdeb
2712+
languageName: node
2713+
linkType: hard
2714+
26852715
"@types/eslint@npm:^8":
26862716
version: 8.56.12
26872717
resolution: "@types/eslint@npm:8.56.12"
@@ -2767,6 +2797,16 @@ __metadata:
27672797
languageName: node
27682798
linkType: hard
27692799

2800+
"@types/mongodb@npm:^3.5.34":
2801+
version: 3.6.20
2802+
resolution: "@types/mongodb@npm:3.6.20"
2803+
dependencies:
2804+
"@types/bson": "npm:*"
2805+
"@types/node": "npm:*"
2806+
checksum: b85770dfa009cd919f680bdf7e152f9cab21d0ea6aab3d3a4133a9e78a1a2dfd966ed1503594191051985cb7157df6e830740d8bdc2b45d4b31050849f84f33d
2807+
languageName: node
2808+
linkType: hard
2809+
27702810
"@types/node@npm:*":
27712811
version: 22.14.0
27722812
resolution: "@types/node@npm:22.14.0"
@@ -3598,6 +3638,15 @@ __metadata:
35983638
languageName: node
35993639
linkType: hard
36003640

3641+
"axios@npm:^0.21.1":
3642+
version: 0.21.4
3643+
resolution: "axios@npm:0.21.4"
3644+
dependencies:
3645+
follow-redirects: "npm:^1.14.0"
3646+
checksum: da644592cb6f8f9f8c64fdabd7e1396d6769d7a4c1ea5f8ae8beb5c2eb90a823e3a574352b0b934ac62edc762c0f52647753dc54f7d07279127a7e5c4cd20272
3647+
languageName: node
3648+
linkType: hard
3649+
36013650
"babel-jest@npm:^29.7.0":
36023651
version: 29.7.0
36033652
resolution: "babel-jest@npm:29.7.0"
@@ -5574,6 +5623,16 @@ __metadata:
55745623
languageName: node
55755624
linkType: hard
55765625

5626+
"follow-redirects@npm:^1.14.0":
5627+
version: 1.15.9
5628+
resolution: "follow-redirects@npm:1.15.9"
5629+
peerDependenciesMeta:
5630+
debug:
5631+
optional: true
5632+
checksum: e3ab42d1097e90d28b913903841e6779eb969b62a64706a3eb983e894a5db000fbd89296f45f08885a0e54cd558ef62e81be1165da9be25a6c44920da10f424c
5633+
languageName: node
5634+
linkType: hard
5635+
55775636
"for-each@npm:^0.3.3, for-each@npm:^0.3.5":
55785637
version: 0.3.5
55795638
resolution: "for-each@npm:0.3.5"
@@ -9286,6 +9345,13 @@ __metadata:
92869345
languageName: node
92879346
linkType: hard
92889347

9348+
"stack-trace@npm:^0.0.10":
9349+
version: 0.0.10
9350+
resolution: "stack-trace@npm:0.0.10"
9351+
checksum: 7bd633f0e9ac46e81a0b0fe6538482c1d77031959cf94478228731709db4672fbbed59176f5b9a9fd89fec656b5dae03d084ef2d1b0c4c2f5683e05f2dbb1405
9352+
languageName: node
9353+
linkType: hard
9354+
92899355
"stack-utils@npm:^2.0.3":
92909356
version: 2.0.6
92919357
resolution: "stack-utils@npm:2.0.6"

0 commit comments

Comments
 (0)