eventstorming
Version:
A Graphics Library for Event Storming
82 lines • 6.92 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const EventEntity_1 = require("../entity/EventEntity");
const EventPublisher_1 = require("../observer/EventPublisher");
const BaseEvent_1 = require("../observer/BaseEvent");
const EventModel_1 = require("../model/EventModel");
const Renderer_1 = require("../render/Renderer");
const SVGGenerator_1 = require("../render/SVGGenerator");
class EventBusiness {
constructor(subscriber) {
this.eventPublisher = new EventPublisher_1.EventPublisher();
this.eventPublisher.RegisterObserver(subscriber);
}
createEventSticky(name) {
let eventEntity = new EventEntity_1.EventEntity(name);
this.eventPublisher.NotifyObservers("event.created", eventEntity);
return eventEntity;
}
updateEventSticky(entity) {
this.eventPublisher.NotifyObservers("event.updated", entity);
return entity;
}
addRelatedChild(createdEntity, subEntity) {
createdEntity.addRelatedChild(subEntity);
this.updateEventSticky(subEntity);
return createdEntity;
}
}
exports.EventBusiness = EventBusiness;
class EventBusinessStore {
constructor(eventSubscriber) {
this.store = [];
let createdEvent = new BaseEvent_1.BaseEvent("event.created", this.handleCreatedEvent.bind(this));
let updatedEvent = new BaseEvent_1.BaseEvent("event.updated", this.handleUpdatedEvent.bind(this));
eventSubscriber.registerEvent(createdEvent);
eventSubscriber.registerEvent(updatedEvent);
this.eventModel = new EventModel_1.EventModel();
}
handleCreatedEvent(entity) {
this.store.push(entity);
this.eventModel.createStore(entity, this.store);
}
handleUpdatedEvent(entity) {
for (let index in this.store) {
if (this.store[index].id === entity.id) {
this.store[index] = entity;
}
}
this.eventModel.updateStore(entity, this.store);
}
}
exports.EventBusinessStore = EventBusinessStore;
class EventStickyRender {
constructor(eventSubscriber) {
this.nodes = [];
this.generator = new SVGGenerator_1.SVGGenerator();
this.renderer = new Renderer_1.Renderer(this.generator);
let createdEvent = new BaseEvent_1.BaseEvent("event.created", this.handleCreatedEvent.bind(this));
let updatedEvent = new BaseEvent_1.BaseEvent("event.updated", this.handleUpdatedEvent.bind(this));
eventSubscriber.registerEvent(createdEvent);
eventSubscriber.registerEvent(updatedEvent);
}
handleCreatedEvent(entity) {
this.nodes.push(entity);
this.renderer.createEntity(entity, this.nodes);
this.render();
}
handleUpdatedEvent(entity) {
for (let index in this.nodes) {
if (this.nodes[index].id === entity.id) {
this.nodes[index] = entity;
}
}
this.renderer.updateEntity(entity, this.nodes);
this.render();
}
render() {
return this.renderer.render();
}
}
exports.EventStickyRender = EventStickyRender;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRCdXNpbmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idXNpbmVzcy9FdmVudEJ1c2luZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQWtEO0FBQ2xELCtEQUEwRDtBQUUxRCxxREFBZ0Q7QUFDaEQsb0RBQStDO0FBQy9DLGlEQUE0QztBQUM1Qyx5REFBb0Q7QUFHcEQ7SUFHRSxZQUFZLFVBQVU7UUFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLCtCQUFjLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFJO1FBQ3BCLElBQUksV0FBVyxHQUFHLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFbEUsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBbUI7UUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWUsQ0FBQyxhQUEwQixFQUFFLFNBQXNCO1FBQ2hFLGFBQWEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sQ0FBQyxhQUFhLENBQUE7SUFDdEIsQ0FBQztDQUNGO0FBMUJELHNDQTBCQztBQUVEO0lBSUUsWUFBWSxlQUFnQztRQUY1QyxVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUd4QixJQUFJLFlBQVksR0FBRyxJQUFJLHFCQUFTLENBQUMsZUFBZSxFQUFF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