fix(types,client,server): improve type safety and harden client/server message handling
This commit is contained in:
@@ -2,12 +2,12 @@ import * as plugins from './smartuniverse.plugins.js';
|
||||
|
||||
import * as interfaces from './interfaces/index.js';
|
||||
|
||||
export class ClientUniverseMessage<T> implements interfaces.IUniverseMessage {
|
||||
export class ClientUniverseMessage<T = any> implements interfaces.IUniverseMessage<T> {
|
||||
// ======
|
||||
// STATIC
|
||||
// ======
|
||||
public static createMessageFromMessageDescriptor(messageDescriptor: interfaces.IUniverseMessage) {
|
||||
const clientuniverseMessage = new ClientUniverseMessage(messageDescriptor);
|
||||
public static createMessageFromMessageDescriptor<T = any>(messageDescriptor: interfaces.IUniverseMessage<T>) {
|
||||
const clientuniverseMessage = new ClientUniverseMessage<T>(messageDescriptor);
|
||||
return clientuniverseMessage;
|
||||
}
|
||||
|
||||
@@ -25,10 +25,14 @@ export class ClientUniverseMessage<T> implements interfaces.IUniverseMessage {
|
||||
public payload: T;
|
||||
public targetChannelName: string;
|
||||
|
||||
constructor(messageArg: interfaces.IUniverseMessage) {
|
||||
for (const key of Object.keys(messageArg)) {
|
||||
this[key] = messageArg[key];
|
||||
}
|
||||
constructor(messageArg: interfaces.IUniverseMessage<T>) {
|
||||
this.id = messageArg.id;
|
||||
this.timestamp = messageArg.timestamp;
|
||||
this.smartTimestamp = new plugins.smarttime.TimeStamp(this.timestamp);
|
||||
this.messageText = messageArg.messageText;
|
||||
this.passphrase = messageArg.passphrase;
|
||||
this.payload = messageArg.payload as T;
|
||||
this.targetChannelName = messageArg.targetChannelName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user