@kerebron/extension-server-hono 0.3.1 → 0.4.0

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 CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## Playground Demo
10
10
 
11
- [playground](https://editor-test.gitgis.com) - be nice.
11
+ [playground](https://demo.kerebron.com) - be nice.
12
12
 
13
13
  ## Overview
14
14
 
@@ -26,22 +26,27 @@ number of output npm modules.
26
26
 
27
27
  **Work in progress**
28
28
 
29
- ## Development
30
29
 
31
- To start example server:
30
+ ## Build
32
31
 
33
- ```
34
- deno task -f example-server-hono start
32
+ ### Build static examples and `.wasm` files
33
+
34
+ ```sh
35
+ deno task build
35
36
  ```
36
37
 
37
- ## Build
38
+ ## Development
38
39
 
39
- ### Build static examples
40
+ To start example server:
40
41
 
41
- ```shell
42
- deno task -r build
42
+ ```sh
43
+ deno task -f server-deno-hono start
43
44
  ```
44
45
 
46
+ ## Examples
47
+
48
+ TODO
49
+
45
50
  ### NPM packages are generated using DNT
46
51
 
47
52
  - https://deno.com/blog/publish-esm-cjs-module-dnt - the easiest way to publish
@@ -51,13 +56,27 @@ deno task -r build
51
56
 
52
57
  To generate npm packages
53
58
 
54
- ```shell
59
+ ```sh
55
60
  deno -A ./build/build_npm.ts
56
61
  ```
57
62
 
58
63
  ## Run through docker
59
64
 
60
- ```
65
+ ```sh
61
66
  docker build . -t editor-test
62
67
  docker run -it -p 8000:8000 -v $PWD:/usr/src/app editor-test
63
68
  ```
69
+
70
+ ## Prerequisites
71
+
72
+ Install deno
73
+
74
+ ```
75
+ npm install -g deno
76
+ ```
77
+
78
+ Install rust
79
+
80
+ ```
81
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
82
+ ```
@@ -33,7 +33,7 @@ export declare class HonoYjsMemAdapter implements HonoWsAdapter {
33
33
  readonly sockets: Map<WebSocket, SocketContext>;
34
34
  readonly rooms: Map<string, Room>;
35
35
  constructor();
36
- getRoomNames(): Promise<string[]>;
36
+ getRoomNames(): string[];
37
37
  upgradeWebSocket(roomName: string): WSEvents<WebSocket>;
38
38
  send(conn: WebSocket, m: Uint8Array): void;
39
39
  receiveMessage(messageBytes: Uint8Array, conn: WebSocket): void;
@@ -1 +1 @@
1
- {"version":3,"file":"HonoYjsMemAdapter.d.ts","sourceRoot":"","sources":["../src/HonoYjsMemAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAI3D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAa,CAAC;AAIlD;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,EAAE,YAAS,KAAG,CAAC,CAAC,GAWtD,CAAC;AAEF,qBAAa,aAAa;aAGI,IAAI,EAAE,IAAI;aAAkB,MAAM,EAAE,SAAS;IAFzE,SAAgB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;gBAE3B,IAAI,EAAE,IAAI,EAAkB,MAAM,EAAE,SAAS;CAE1E;AAED,qBAAa,IAAI;aAIa,QAAQ,EAAE,MAAM;aAAkB,GAAG,EAAE,CAAC,CAAC,GAAG;IAHxE,SAAgB,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAa;IAC1E,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;gBAEX,QAAQ,EAAE,MAAM,EAAkB,GAAG,EAAE,CAAC,CAAC,GAAG;CAuDzE;AAID,qBAAa,iBAAkB,YAAW,aAAa;;IACrD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAa;IAC5D,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;IAM5B,YAAY;IAIlB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;IA0DvD,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU;IAUnC,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS;CA+DzD"}
1
+ {"version":3,"file":"HonoYjsMemAdapter.d.ts","sourceRoot":"","sources":["../src/HonoYjsMemAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAI3D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAa,CAAC;AAIlD;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,EAAE,YAAS,KAAG,CAAC,CAAC,GAWtD,CAAC;AAEF,qBAAa,aAAa;aAGI,IAAI,EAAE,IAAI;aAAkB,MAAM,EAAE,SAAS;IAFzE,SAAgB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;gBAE3B,IAAI,EAAE,IAAI,EAAkB,MAAM,EAAE,SAAS;CAE1E;AAED,qBAAa,IAAI;aAIa,QAAQ,EAAE,MAAM;aAAkB,GAAG,EAAE,CAAC,CAAC,GAAG;IAHxE,SAAgB,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAa;IAC1E,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC;gBAEX,QAAQ,EAAE,MAAM,EAAkB,GAAG,EAAE,CAAC,CAAC,GAAG;CAuDzE;AAID,qBAAa,iBAAkB,YAAW,aAAa;;IACrD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAa;IAC5D,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;IAMlC,YAAY;IAIZ,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;IAsEvD,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU;IAUnC,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS;CA8DzD"}
@@ -26,13 +26,13 @@ export const getYDoc = (docname, gc = true) => {
26
26
  if (docs.has(docname)) {
27
27
  return docs.get(docname);
28
28
  }
29
- const doc = new Y.Doc({ gc: gcEnabled });
30
- doc.gc = gc;
29
+ const ydoc = new Y.Doc({ gc: gcEnabled });
30
+ ydoc.gc = gc;
31
31
  // if (persistence !== null) {
32
32
  // persistence.bindState(docname, doc)
33
33
  // }
34
- docs.set(docname, doc);
35
- return doc;
34
+ docs.set(docname, ydoc);
35
+ return ydoc;
36
36
  };
37
37
  export class SocketContext {
38
38
  constructor(room, socket) {
@@ -135,7 +135,7 @@ export class HonoYjsMemAdapter {
135
135
  });
136
136
  this.rooms = rooms;
137
137
  }
138
- async getRoomNames() {
138
+ getRoomNames() {
139
139
  return Array.from(rooms.keys());
140
140
  }
141
141
  upgradeWebSocket(roomName) {
@@ -165,8 +165,18 @@ export class HonoYjsMemAdapter {
165
165
  }
166
166
  // this.#forceReady();
167
167
  },
168
- onError: (error, wsContext) => {
169
- console.error('onError', error);
168
+ onError: (evt, wsContext) => {
169
+ if (evt instanceof ErrorEvent) {
170
+ if (evt.message.indexOf('Connection reset by peer') > -1) {
171
+ return;
172
+ }
173
+ if (evt.message.indexOf('No response from ping frame.') > -1) {
174
+ return;
175
+ }
176
+ console.warn(new Error('HonoYjsMemAdapter.onError: ' + evt.message, {
177
+ cause: evt.error,
178
+ }));
179
+ }
170
180
  },
171
181
  onMessage: (message, wsContext) => {
172
182
  if (!wsContext.raw) {
@@ -218,8 +228,7 @@ export class HonoYjsMemAdapter {
218
228
  }
219
229
  catch (err) {
220
230
  console.error(err);
221
- // @ts-ignore
222
- doc.emit('error', [err]);
231
+ // room.doc.emit('error', [err]);
223
232
  }
224
233
  }
225
234
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kerebron/extension-server-hono",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "license": "MIT",
5
5
  "module": "./esm/mod.js",
6
6
  "exports": {