45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
|
/***
|
||
|
* EventStoreSubscription
|
||
|
* @param {string} streamId
|
||
|
* @param {number} lastCommitPosition
|
||
|
* @param {?number} lastEventNumber
|
||
|
* @constructor
|
||
|
* @property {boolean} isSubscribedToAll
|
||
|
* @property {string} streamId
|
||
|
* @property {number} lastCommitPosition
|
||
|
* @property {?number} lastEventNumber
|
||
|
*/
|
||
|
function EventStoreSubscription(streamId, lastCommitPosition, lastEventNumber) {
|
||
|
Object.defineProperties(this, {
|
||
|
isSubscribedToAll: {
|
||
|
value: streamId === ''
|
||
|
},
|
||
|
streamId: {
|
||
|
value: streamId
|
||
|
},
|
||
|
lastCommitPosition: {
|
||
|
value: lastCommitPosition
|
||
|
},
|
||
|
lastEventNumber: {
|
||
|
value: lastEventNumber
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Unsubscribes from the stream
|
||
|
*/
|
||
|
EventStoreSubscription.prototype.close = function() {
|
||
|
this.unsubscribe();
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Unsubscribes from the stream
|
||
|
* @abstract
|
||
|
*/
|
||
|
EventStoreSubscription.prototype.unsubscribe = function() {
|
||
|
throw new Error("EventStoreSubscription.unsubscribe abstract method called." + this.constructor.name);
|
||
|
};
|
||
|
|
||
|
module.exports = EventStoreSubscription;
|