cojson-transport-ws 0.7.26 → 0.7.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.
@@ -1,8 +1,8 @@
1
1
 
2
- > cojson-transport-ws@0.7.23 build /Users/anselm/jazz/jazz/packages/cojson-transport-ws
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.23 lint
6
+ > cojson-transport-ws@0.7.26 lint
7
7
  > eslint . --ext ts,tsx
8
8
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # cojson-transport-nodejs-ws
2
2
 
3
+ ## 0.7.27
4
+
5
+ ### Patch Changes
6
+
7
+ - Option to not expect pings
8
+
3
9
  ## 0.7.26
4
10
 
5
11
  ### Patch Changes
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
- pingTimeout = setTimeout(() => {
29
- incoming
30
- .push("PingTimeout")
31
- .catch((e) => console.error("Error while pushing ping timeout", e));
32
- }, 10000);
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.send(JSON.stringify(msg));
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,EAA0D,eAAe,EAAE,MAAM,QAAQ,CAAC;AA2BjG,MAAM,CAAC,GAMH,UAAU,CAAC;AAEf,MAAM,UAAU,mBAAmB,CAAC,EAChC,EAAE,EACF,SAAS,EACT,IAAI,GAKP;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,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,QAAQ;iBACH,IAAI,CAAC,aAAa,CAAC;iBACnB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,CACvD,CAAC;QACV,CAAC,EAAE,KAAM,CAAC,CAAC;IACf,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,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,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"}
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,7 +1,7 @@
1
1
  {
2
2
  "name": "cojson-transport-ws",
3
3
  "type": "module",
4
- "version": "0.7.26",
4
+ "version": "0.7.27",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
7
7
  "license": "MIT",
package/src/index.ts CHANGED
@@ -1,4 +1,10 @@
1
- import { DisconnectedError, Peer, PingTimeoutError, SyncMessage, cojsonInternals } from "cojson";
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
- pingTimeout = setTimeout(() => {
78
- incoming
79
- .push("PingTimeout")
80
- .catch((e) =>
81
- console.error("Error while pushing ping timeout", e),
82
- );
83
- }, 10_000);
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.send(JSON.stringify(msg));
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
  };