cojson-transport-ws 0.7.26 → 0.7.28
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/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +13 -0
- package/dist/index.js +13 -9
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +22 -10
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> cojson-transport-ws@0.7.
|
|
2
|
+
> cojson-transport-ws@0.7.26 build /Users/anselm/jazz/jazz/packages/cojson-transport-ws
|
|
3
3
|
> npm run lint && rm -rf ./dist && tsc --sourceMap --outDir dist
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> cojson-transport-ws@0.7.
|
|
6
|
+
> cojson-transport-ws@0.7.26 lint
|
|
7
7
|
> eslint . --ext ts,tsx
|
|
8
8
|
|
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { cojsonInternals } from "cojson";
|
|
1
|
+
import { cojsonInternals, } from "cojson";
|
|
2
2
|
const g = globalThis;
|
|
3
|
-
export function createWebSocketPeer({ id, websocket, role, }) {
|
|
3
|
+
export function createWebSocketPeer({ id, websocket, role, expectPings = true, }) {
|
|
4
4
|
const incoming = new cojsonInternals.Channel();
|
|
5
5
|
websocket.addEventListener("close", function handleClose() {
|
|
6
6
|
incoming
|
|
@@ -25,11 +25,13 @@ export function createWebSocketPeer({ id, websocket, role, }) {
|
|
|
25
25
|
.push(msg)
|
|
26
26
|
.catch((e) => console.error("Error while pushing incoming msg", e));
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
if (expectPings) {
|
|
29
|
+
pingTimeout = setTimeout(() => {
|
|
30
|
+
incoming
|
|
31
|
+
.push("PingTimeout")
|
|
32
|
+
.catch((e) => console.error("Error while pushing ping timeout", e));
|
|
33
|
+
}, 10000);
|
|
34
|
+
}
|
|
33
35
|
});
|
|
34
36
|
const websocketOpen = new Promise((resolve) => {
|
|
35
37
|
websocket.addEventListener("open", resolve, { once: true });
|
|
@@ -40,13 +42,15 @@ export function createWebSocketPeer({ id, websocket, role, }) {
|
|
|
40
42
|
outgoing: {
|
|
41
43
|
async push(msg) {
|
|
42
44
|
await websocketOpen;
|
|
43
|
-
websocket.
|
|
45
|
+
if (websocket.readyState === 1) {
|
|
46
|
+
websocket.send(JSON.stringify(msg));
|
|
47
|
+
}
|
|
44
48
|
},
|
|
45
49
|
close() {
|
|
46
50
|
if (websocket.readyState === 1) {
|
|
47
51
|
websocket.close();
|
|
48
52
|
}
|
|
49
|
-
}
|
|
53
|
+
},
|
|
50
54
|
},
|
|
51
55
|
role,
|
|
52
56
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,eAAe,GAClB,MAAM,QAAQ,CAAC;AA2BhB,MAAM,CAAC,GAMH,UAAU,CAAC;AAEf,MAAM,UAAU,mBAAmB,CAAC,EAChC,EAAE,EACF,SAAS,EACT,IAAI,EACJ,WAAW,GAAG,IAAI,GAMrB;IACG,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,OAAO,EAEzC,CAAC;IAEJ,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,WAAW;QACpD,QAAQ;aACH,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC,CACzD,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,IAAI,WAAW,GAAyC,IAAI,CAAC;IAE7D,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,iBAAiB,CAAC,KAAK;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;QAC7C,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,GAAG,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,GAAc,CAAC;YAC5B,CAAC,CAAC,SAAS,KAAX,CAAC,CAAC,SAAS,GAAK,EAAE,EAAC;YACnB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;gBACb,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,IAAI,CAAC,EAAE;aACd,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,QAAQ;iBACH,IAAI,CAAC,GAAG,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,CACvD,CAAC;QACV,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YACd,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,QAAQ;qBACH,IAAI,CAAC,aAAa,CAAC;qBACnB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,CACvD,CAAC;YACV,CAAC,EAAE,KAAM,CAAC,CAAC;QACf,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAChD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,EAAE;QACF,QAAQ;QACR,QAAQ,EAAE;YACN,KAAK,CAAC,IAAI,CAAC,GAAG;gBACV,MAAM,aAAa,CAAC;gBACpB,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;oBAC7B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;YACD,KAAK;gBACD,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;oBAC7B,SAAS,CAAC,KAAK,EAAE,CAAC;gBACtB,CAAC;YACL,CAAC;SACJ;QACD,IAAI;KACP,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cojson-transport-ws",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.7.
|
|
4
|
+
"version": "0.7.28",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "src/index.ts",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"typescript": "^5.1.6",
|
|
10
|
-
"cojson": "0.7.
|
|
10
|
+
"cojson": "0.7.28"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"@types/ws": "^8.5.5"
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
DisconnectedError,
|
|
3
|
+
Peer,
|
|
4
|
+
PingTimeoutError,
|
|
5
|
+
SyncMessage,
|
|
6
|
+
cojsonInternals,
|
|
7
|
+
} from "cojson";
|
|
2
8
|
|
|
3
9
|
interface WebsocketEvents {
|
|
4
10
|
close: { code: number; reason: string };
|
|
@@ -37,10 +43,12 @@ export function createWebSocketPeer({
|
|
|
37
43
|
id,
|
|
38
44
|
websocket,
|
|
39
45
|
role,
|
|
46
|
+
expectPings = true,
|
|
40
47
|
}: {
|
|
41
48
|
id: string;
|
|
42
49
|
websocket: AnyWebSocket;
|
|
43
50
|
role: Peer["role"];
|
|
51
|
+
expectPings?: boolean;
|
|
44
52
|
}): Peer {
|
|
45
53
|
const incoming = new cojsonInternals.Channel<
|
|
46
54
|
SyncMessage | DisconnectedError | PingTimeoutError
|
|
@@ -74,13 +82,15 @@ export function createWebSocketPeer({
|
|
|
74
82
|
console.error("Error while pushing incoming msg", e),
|
|
75
83
|
);
|
|
76
84
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
85
|
+
if (expectPings) {
|
|
86
|
+
pingTimeout = setTimeout(() => {
|
|
87
|
+
incoming
|
|
88
|
+
.push("PingTimeout")
|
|
89
|
+
.catch((e) =>
|
|
90
|
+
console.error("Error while pushing ping timeout", e),
|
|
91
|
+
);
|
|
92
|
+
}, 10_000);
|
|
93
|
+
}
|
|
84
94
|
});
|
|
85
95
|
|
|
86
96
|
const websocketOpen = new Promise<void>((resolve) => {
|
|
@@ -93,13 +103,15 @@ export function createWebSocketPeer({
|
|
|
93
103
|
outgoing: {
|
|
94
104
|
async push(msg) {
|
|
95
105
|
await websocketOpen;
|
|
96
|
-
websocket.
|
|
106
|
+
if (websocket.readyState === 1) {
|
|
107
|
+
websocket.send(JSON.stringify(msg));
|
|
108
|
+
}
|
|
97
109
|
},
|
|
98
110
|
close() {
|
|
99
111
|
if (websocket.readyState === 1) {
|
|
100
112
|
websocket.close();
|
|
101
113
|
}
|
|
102
|
-
}
|
|
114
|
+
},
|
|
103
115
|
},
|
|
104
116
|
role,
|
|
105
117
|
};
|