UNPKG

diffusion

Version:

Diffusion JavaScript client

37 lines (29 loc) 1.07 kB
function Event(metadata, originalEvent, value) { this.metadata = metadata; this.originalEvent = originalEvent; this.value = value; this.sequence = metadata.sequence; this.timestamp = metadata.timestamp; this.author = metadata.author; this.isEditEvent = !metadata.equals(originalEvent); this.isOriginalEvent = !this.isEditEvent; } Event.prototype.withValue = function(newValue) { return new Event(this.metadata, this.originalEvent, newValue); }; Event.prototype.equals = function(other) { if (other && other instanceof Event) { return this.metadata.equals(other.metadata) && this.originalEvent.equals(other.originalEvent) && this.value === other.value; } return false; }; Event.prototype.toString = function() { var s = this.isEditEvent ? "Edit of [" + this.originalEvent + "] " : ""; return s + "[" + this.metadata + "] " + this.value; }; Event.create = function(metadata, originalEvent, value) { return new Event(metadata, originalEvent, value); }; module.exports = Event;