import {WebSocketEvent} from "./WebSocketEvent"; export class WebSocketPayload { set event(value: WebSocketEvent) { this._event = value; } set status(value: boolean) { this._status = value; } set data(value: object | undefined) { this._data = value; } private _event: WebSocketEvent; private _status: boolean; private _data: object | undefined; get event(): WebSocketEvent { return this._event; } get status(): boolean { return this._status; } get data(): object | undefined { return this._data; } constructor(event: WebSocketEvent, status: boolean, data?: object) { this._event = event; this._status = status; this._data = data; } public static parseFromJSON(json: string): WebSocketPayload | null { json = (window) ? atob(json) : Buffer.from(json, "base64").toString(); let rawPayload: { event: string, status: boolean, data: object }; try { rawPayload = JSON.parse(json); } catch (e) { return null; } let wsEvent = rawPayload.event; return new WebSocketPayload(wsEvent, rawPayload.status, rawPayload.data); } }