UNPKG

netkitty

Version:
62 lines (61 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PipeMessage = exports.PipeMessageType = void 0; const node_crypto_1 = require("node:crypto"); var PipeMessageType; (function (PipeMessageType) { PipeMessageType[PipeMessageType["EVENT"] = 0] = "EVENT"; PipeMessageType[PipeMessageType["REQUEST"] = 1] = "REQUEST"; PipeMessageType[PipeMessageType["RESPONSE_OK"] = 2] = "RESPONSE_OK"; PipeMessageType[PipeMessageType["RESPONSE_ERR"] = 3] = "RESPONSE_ERR"; })(PipeMessageType || (exports.PipeMessageType = PipeMessageType = {})); class PipeMessage { #serialized; #structured; set structured(structured) { this.#structured = structured; this.#serialized = JSON.stringify(this.#structured); } get structured() { return this.#structured; } get messageId() { return this.structured.messageId; } set type(type) { const structured = this.structured; structured.type = type; this.structured = structured; } get type() { return this.structured.type; } set payload(payload) { const structured = this.structured; structured.payload = payload; this.structured = structured; } get payload() { return this.structured.payload; } constructor(serialized) { if (serialized) { this.#serialized = serialized; this.#structured = JSON.parse(serialized); } else { this.structured = { messageId: `PIPE_MSG_${Date.now().toString(16)}${(0, node_crypto_1.randomInt)(10000000, 99999999)}`, type: PipeMessageType.EVENT, payload: null }; } } /** * Serialized pipe message */ serialize() { return this.#serialized; } } exports.PipeMessage = PipeMessage;