UNPKG

@fractional-company/common

Version:
81 lines (80 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InternalEvent = void 0; const generate_uuid_1 = require("../../utils/generate-uuid"); class InternalEvent { constructor(name, body, eventId) { this.handler = null; this.name = name; this.body = body; this.eventId = eventId ? eventId : (0, generate_uuid_1.generateUuid)(); } setName(name) { this.name = name; return this; } setBody(body) { this.body = body; return this; } setEventId(eventId) { this.eventId = eventId; return this; } setHandler(handler) { this.handler = handler; return this; } getName() { return this.name; } getBody() { return this.body; } getEventId() { return this.eventId; } getHandler() { return this.handler; } hasHandler() { return !!this.handler; } toObject() { const obj = { name: this.name, body: this.body, eventId: this.eventId, }; if (this.handler) { return { ...obj, handler: this.handler, }; } return obj; } toJson() { return JSON.stringify(this.toObject()); } cloneWithHandler(handler) { const jsonObject = { ...this.toObject(), handler, }; return InternalEvent.resolveFromObject(jsonObject); } static resolveFromJson(jsonString) { const jsonObject = JSON.parse(jsonString); return this.resolveFromObject(jsonObject); } static resolveFromObject(jsonObject) { const internalEvent = new InternalEvent(jsonObject.name, jsonObject.body, jsonObject.eventId); if (!("handler" in jsonObject)) { return internalEvent; } internalEvent.setHandler(jsonObject.handler); return internalEvent; } } exports.InternalEvent = InternalEvent;