UNPKG

eventstorming

Version:
82 lines 6.92 kB
"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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