diffusion
Version:
Diffusion JavaScript client
37 lines (29 loc) • 1.07 kB
JavaScript
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;