UNPKG

xoh-xapi

Version:
65 lines (64 loc) 2.5 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Request = exports.SocketManager = exports.createCustomTag = void 0; function createCustomTag() { let tag = new Date().getMilliseconds(); return String(tag); } exports.createCustomTag = createCustomTag; class SocketManager { } exports.SocketManager = SocketManager; SocketManager.send = (webSocket, body, customTag) => { return (new Promise((resolve, reject) => { webSocket.send(body); webSocket.onmessage = (e) => { let response = JSON.parse(e.data); if (response.customTag === customTag) { resolve(e.data); } }; })); }; class Request { constructor(webSocket, body) { this.send = () => { return (new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { if (this.isValid()) { try { let body = JSON.stringify(this.body); let response = yield SocketManager.send(this.webSocket, body, this.customTag); resolve(response); } catch (e) { reject(e); } } else { reject(new Error('Invalid request body or url')); } }))); }; this.body = body; this.webSocket = webSocket; this.customTag = createCustomTag(); //add custom tag this.body.customTag = this.customTag; } isValid() { if (this.body.command.trim().length > 0) { return true; } return false; } } exports.Request = Request;