Files
UDN/static/node_modules/udn-frontend
2024-07-08 21:13:56 +02:00
..
2024-07-08 21:13:56 +02:00
2024-07-08 13:07:15 +02:00
2024-07-08 21:13:56 +02:00
2024-07-08 21:13:56 +02:00

udn-frontend

TypeScript library for UDN apps

Install

npm install udn-frontend

Usage

import UDNFrontend from "udn-frontend";

// setup
const UDN = new UDNFrontend();
UDN.onconnect = () => {
  console.log("connected!");
};
UDN.ondisconnect = () => {
  console.log("disconnected!");
};
UDN.onmessage = (data: Message) => {
  console.log(data);
};

// do stuff
UDN.connect("ws://192.168.0.69:1234");

UDN.subscribe("my-channel");
UDN.sendMessage("my-channel", "Hello, world!");
UDN.unsubscribe("my-channel");

Type Reference

export interface Message {
  // connecting to server
  requestingServerConnection?: boolean;

  // mailbox
  requestingMailboxSetup?: boolean;
  assignedMailboxId?: string; // sent by server
  requestedMailbox?: string;

  // subscribing to channel
  subscribeChannel?: string;
  unsubscribeChannel?: string;
  subscribed?: boolean; // sent by server to confirm subscription

  //sending message
  messageChannel?: string;
  messageBody?: string;
}

export default class UDNFrontend {
  ws: WebSocket | undefined;

  // handlers
  private connectionHandler = () => {};
  private disconnectionHandler = () => {};
  private messageHandler = (data: Message) => {};

  // init
  set onconnect(handler: () => void);
  set ondisconnect(handler: () => void);
  set onmessage(handler: (data: Message) => void);

  // methods
  connect(address: string): void;
  disconnect(address: string): void;
  sendMessage(channel: string, body: string): boolean; // true if message is sent
  subscribe(channel: string): boolean; // true if request is sent, NOT inherently when subscribed
  unsubscribe(channel: string): boolean; // true if request is sent, NOT inherently when unsubscribed
}

Changelog

1.0.1

  • minor fixes

1.0.2

  • minor fixes

1.0.3

  • add disconnect() method

1.0.4

  • make ws public