@uploadista/event-emitter-durable-object 0.1.3 → 0.2.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/dist/index.cjs +1 -1
- package/package.json +6 -6
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require(`@uploadista/core/errors`),t=require(`@uploadista/core/types`),n=require(`effect`),r=require(`cloudflare:workers`);function i({durableObject:t}){function r(e){let n=t.idFromName(e);return t.get(n)}return{emit:(t,i)=>n.Effect.tryPromise({try:async()=>{console.log(`[DO EventEmitter] Emitting to eventKey: ${t}`,i.substring(0,200)),await r(t).emit(i),console.log(`[DO EventEmitter] Successfully emitted to eventKey: ${t}`)},catch:n=>(console.error(`[DO EventEmitter] Failed to emit to eventKey: ${t}`,n),e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:n}))}),subscribe:(t,i)=>n.Effect.tryPromise({try:async()=>{await r(t).subscribe(i)},catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}),unsubscribe:t=>n.Effect.tryPromise({try:async()=>{await r(t).unsubscribe()},catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})})}}const a=e=>n.Layer.succeed(t.BaseEventEmitterService,i(e));var o=class extends r.DurableObject{async fetch(e){console.log(`[DO fetch] WebSocket connection request: ${e.url}`);let t=new WebSocketPair,[n,r]=Object.values(t);return this.ctx.acceptWebSocket(r),console.log(`[DO fetch] WebSocket accepted, total connections: ${this.ctx.getWebSockets().length}`),new Response(null,{status:101,webSocket:n})}async emit(e){let t=this.ctx.getWebSockets();console.log(`[DO emit] Broadcasting message to ${t.length} WebSocket(s):`,e.substring(0,200));for(let n of t)try{n.send(e)}catch(e){console.error(`Failed to send message to WebSocket:`,e)}}async subscribe(e){}async unsubscribe(){let e=this.ctx.getWebSockets();for(let t of e)t.close(1e3,`Unsubscribed`)}async webSocketMessage(e,t){console.log(`WebSocket message received: ${t}`)}async webSocketClose(e,t,n,r){if(e.readyState===WebSocket.OPEN){let n=t===1006||t<1e3||t>4999?1e3:t;e.close(n,`Durable Object closing WebSocket`)}}async webSocketError(e,t){console.error(`WebSocket error:`,t),e.readyState===WebSocket.OPEN&&e.close(1011,`WebSocket error occurred`)}};exports.UploadistaDurableObjectImpl=o,exports.durableObjectBaseEventEmitter=i,exports.durableObjectEventEmitter=a;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@uploadista/core/errors`),t=require(`@uploadista/core/types`),n=require(`effect`),r=require(`cloudflare:workers`);function i({durableObject:t}){function r(e){let n=t.idFromName(e);return t.get(n)}return{emit:(t,i)=>n.Effect.tryPromise({try:async()=>{console.log(`[DO EventEmitter] Emitting to eventKey: ${t}`,i.substring(0,200)),await r(t).emit(i),console.log(`[DO EventEmitter] Successfully emitted to eventKey: ${t}`)},catch:n=>(console.error(`[DO EventEmitter] Failed to emit to eventKey: ${t}`,n),e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:n}))}),subscribe:(t,i)=>n.Effect.tryPromise({try:async()=>{await r(t).subscribe(i)},catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}),unsubscribe:t=>n.Effect.tryPromise({try:async()=>{await r(t).unsubscribe()},catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})})}}const a=e=>n.Layer.succeed(t.BaseEventEmitterService,i(e));var o=class extends r.DurableObject{async fetch(e){console.log(`[DO fetch] WebSocket connection request: ${e.url}`);let t=new WebSocketPair,[n,r]=Object.values(t);return this.ctx.acceptWebSocket(r),console.log(`[DO fetch] WebSocket accepted, total connections: ${this.ctx.getWebSockets().length}`),new Response(null,{status:101,webSocket:n})}async emit(e){let t=this.ctx.getWebSockets();console.log(`[DO emit] Broadcasting message to ${t.length} WebSocket(s):`,e.substring(0,200));for(let n of t)try{n.send(e)}catch(e){console.error(`Failed to send message to WebSocket:`,e)}}async subscribe(e){}async unsubscribe(){let e=this.ctx.getWebSockets();for(let t of e)t.close(1e3,`Unsubscribed`)}async webSocketMessage(e,t){console.log(`WebSocket message received: ${t}`)}async webSocketClose(e,t,n,r){if(e.readyState===WebSocket.OPEN){let n=t===1006||t<1e3||t>4999?1e3:t;e.close(n,`Durable Object closing WebSocket`)}}async webSocketError(e,t){console.error(`WebSocket error:`,t),e.readyState===WebSocket.OPEN&&e.close(1011,`WebSocket error occurred`)}};exports.UploadistaDurableObjectImpl=o,exports.durableObjectBaseEventEmitter=i,exports.durableObjectEventEmitter=a;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uploadista/event-emitter-durable-object",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"description": "Durable Object event emitter for Uploadista",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Uploadista",
|
|
@@ -14,18 +14,18 @@
|
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@cloudflare/workers-types": "4.
|
|
18
|
-
"@uploadista/core": "0.
|
|
17
|
+
"@cloudflare/workers-types": "4.20260213.0",
|
|
18
|
+
"@uploadista/core": "0.2.0"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
21
|
"effect": "^3.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@effect/vitest": "0.27.0",
|
|
25
|
-
"effect": "3.19.
|
|
26
|
-
"tsdown": "0.20.
|
|
25
|
+
"effect": "3.19.17",
|
|
26
|
+
"tsdown": "0.20.3",
|
|
27
27
|
"vitest": "4.0.18",
|
|
28
|
-
"@uploadista/typescript-config": "0.
|
|
28
|
+
"@uploadista/typescript-config": "0.2.0"
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
31
|
"build": "tsc --noEmit && tsdown",
|