diff --git a/static/bun.lockb b/static/bun.lockb index 7eb7c7e..a31775b 100755 Binary files a/static/bun.lockb and b/static/bun.lockb differ diff --git a/static/node_modules/udn-frontend/README.md b/static/node_modules/udn-frontend/README.md index 9562c99..307d9ff 100644 --- a/static/node_modules/udn-frontend/README.md +++ b/static/node_modules/udn-frontend/README.md @@ -37,12 +37,26 @@ UDN.subscribe("my-channel"); UDN.unsubscribe("my-channel"); // mailbox -UDN.onmailbox = (mailboxId: string) => { +UDN.onmailboxcreate = (mailboxId: string) => { UDN.connectMailbox(mailboxId); } UDN.onmailboxconnect = (mailboxId: string) => { UDN.deleteMailbox(mailboxId); } +UDN.onmailboxdelete = (mailboxId: string) => { + console.log("mailbox deleted"); +} UDN.requestMailbox(); ``` + +# Changelog + +## 1.0.5 + +- add mailbox support + +## 1.0.6 + +- add error handling with `connect()` +- add `onmailboxdelete` listener \ No newline at end of file diff --git a/static/node_modules/udn-frontend/index.ts b/static/node_modules/udn-frontend/index.ts index 3b729f6..8bf88cf 100644 --- a/static/node_modules/udn-frontend/index.ts +++ b/static/node_modules/udn-frontend/index.ts @@ -8,11 +8,12 @@ export interface Message { deletingMailbox?: string; assignedMailboxId?: string; // sent by server connectedMailboxId?: string; // sent by server + deletedMailbox?: string; // sent by server // subscribing to channel subscribeChannel?: string; unsubscribeChannel?: string; - subscribed?: boolean; // sent by server to confirm subscription + subscribed?: boolean; // sent by server //sending message messageChannel?: string; @@ -28,6 +29,7 @@ export default class UDNFrontend { private messageHandler = (data: Message) => {}; private mailboxHandler = (mailboxId: string) => {}; private mailboxConnectionHandler = (mailboxId: string) => {}; + private mailboxDeleteHandler = (mailboxId: string) => {}; // INIT set onconnect(handler: () => void) { @@ -39,12 +41,15 @@ export default class UDNFrontend { set onmessage(handler: (data: Message) => void) { this.messageHandler = handler; } - set onmailbox(handler: (mailboxId: string) => void) { + set onmailboxcreate(handler: (mailboxId: string) => void) { this.mailboxHandler = handler; } set onmailboxconnect(handler: (mailboxId: string) => void) { this.mailboxConnectionHandler = handler; } + set onmailboxdelete(handler: (mailboxId: string) => void) { + this.mailboxDeleteHandler = handler; + } // UTILITY METHODS private send(messageObject: Message): boolean { @@ -58,23 +63,29 @@ export default class UDNFrontend { // PUBLIC METHODS // connection connect(address: string): void { - this.disconnect(); + try { + this.disconnect(); - this.ws = new WebSocket(address); - this.ws.addEventListener("open", this.connectionHandler); - this.ws.addEventListener("close", this.disconnectionHandler); - this.ws.addEventListener("message", (message) => { - const dataString = message.data.toString(); - const data = JSON.parse(dataString); + this.ws = new WebSocket(address); + this.ws.addEventListener("open", this.connectionHandler); + this.ws.addEventListener("close", this.disconnectionHandler); + this.ws.addEventListener("message", (message) => { + const dataString = message.data.toString(); + const data = JSON.parse(dataString); - if (data.assignedMailboxId) { - return this.mailboxHandler(data.assignedMailboxId); - } else if (data.connectedMailboxId) { - return this.mailboxConnectionHandler(data.assignedMailboxId); - } else { - this.messageHandler(data); - } - }); + if (data.assignedMailboxId) { + return this.mailboxHandler(data.assignedMailboxId); + } else if (data.connectedMailboxId) { + return this.mailboxConnectionHandler(data.connectedMailboxId); + } else if (data.deletedMailbox) { + return this.mailboxDeleteHandler(data.deletedMailbox); + } else { + this.messageHandler(data); + } + }); + } catch (error) { + console.error(error); + } } disconnect(): void { diff --git a/static/node_modules/udn-frontend/package.json b/static/node_modules/udn-frontend/package.json index 91637c8..2e2d9e7 100644 --- a/static/node_modules/udn-frontend/package.json +++ b/static/node_modules/udn-frontend/package.json @@ -1,6 +1,6 @@ { "name": "udn-frontend", - "version": "1.0.4", + "version": "1.0.6", "description": "TypeScript library for UDN apps", "main": "index.ts", "scripts": { diff --git a/static/package.json b/static/package.json index 3da7530..459557d 100644 --- a/static/package.json +++ b/static/package.json @@ -2,7 +2,7 @@ "dependencies": { "bloatless-react": "1.2.5-beta1", "esbuild": "latest", - "udn-frontend": "^1.0.4" + "udn-frontend": "^1.0.6" }, "scripts": { "build": "esbuild src/index.tsx --bundle --outdir=dist"