rxjs-ws-channels-filters
Advanced tools
Comparing version 0.3.0 to 0.4.0
@@ -6,29 +6,32 @@ 'use strict'; | ||
'use strict'; | ||
rxSocket.QueueSubject = QueueSubject; | ||
rxSocket.QueueSubjectInit = function () { | ||
rxSocket.QueueSubject = QueueSubject; | ||
QueueSubject.prototype = Object.create(Rx.Subject.prototype); | ||
QueueSubject.prototype = Object.create(rxSocket.Rx.Subject.prototype); | ||
function QueueSubject() { | ||
Rx.Subject.apply(this, arguments); | ||
this._queuedValues = []; | ||
return this; | ||
} | ||
function QueueSubject() { | ||
rxSocket.Rx.Subject.apply(this, arguments); | ||
this._queuedValues = []; | ||
return this; | ||
} | ||
QueueSubject.prototype.next = function (value) { | ||
if (this.closed || this.observers.length) | ||
Rx.Subject.prototype.next.call(this, value); | ||
else | ||
this._queuedValues.push(value); | ||
}; | ||
QueueSubject.prototype.next = function (value) { | ||
if (this.closed || this.observers.length) { | ||
rxSocket.Rx.Subject.prototype.next.call(this, value); | ||
} else { | ||
this._queuedValues.push(value); | ||
} | ||
}; | ||
QueueSubject.prototype._subscribe = function (subscriber) { | ||
var vm = this; | ||
var ret = Rx.Subject.prototype._subscribe.call(this, subscriber); | ||
if (this._queuedValues.length) { | ||
this._queuedValues.forEach(function (value) { | ||
return Rx.Subject.prototype.next.call(vm, value); | ||
}); | ||
this._queuedValues.splice(0); | ||
} | ||
return ret; | ||
QueueSubject.prototype._subscribe = function (subscriber) { | ||
var vm = this; | ||
var ret = rxSocket.Rx.Subject.prototype._subscribe.call(this, subscriber); | ||
if (this._queuedValues.length) { | ||
this._queuedValues.forEach(function (value) { | ||
return rxSocket.Rx.Subject.prototype.next.call(vm, value); | ||
}); | ||
this._queuedValues.splice(0); | ||
} | ||
return ret; | ||
}; | ||
}; | ||
@@ -97,3 +100,3 @@ })(); | ||
function createNewChannelServerSubscriptionObservable(channelSub) { | ||
return new Rx.Observable.create(function (observer) { | ||
return new rxSocket.Rx.Observable.create(function (observer) { | ||
channelSub.observer = observer; | ||
@@ -104,3 +107,3 @@ }).debounceTime(10).subscribe(debounceChannelNotifications); | ||
function createNewChannelObservable(channel, channelSub, fromFilter) { | ||
return new Rx.Observable.create(function (observer) { | ||
return new rxSocket.Rx.Observable.create(function (observer) { | ||
if (!fromFilter) { | ||
@@ -163,3 +166,3 @@ joinChannel(channel); | ||
function createNewFilterObservable(channelSub, filter, filterSub) { | ||
return new Rx.Observable.create(function (observer) { | ||
return new rxSocket.Rx.Observable.create(function (observer) { | ||
channelSub.observer.next(channelSub.name); | ||
@@ -297,3 +300,9 @@ channelSub.filtersToSend.push({ | ||
function Create(userOptions) { | ||
function Create(userOptions, rxObservable, rxSubject, rxBehaviorSubject) { | ||
rxSocket.Rx = { | ||
Observable: rxObservable || Rx.Observable, | ||
Subject: rxSubject || Rx.Subject, | ||
BehaviorSubject: rxBehaviorSubject || Rx.BehaviorSubject | ||
}; | ||
rxSocket.QueueSubjectInit(); | ||
if (!userOptions.url) { | ||
@@ -310,3 +319,3 @@ console.error('WebSocket url not provided!'); | ||
vm.connectionStatus = new Rx.BehaviorSubject(false); | ||
vm.connectionStatus = new rxSocket.Rx.BehaviorSubject(false); | ||
vm.subject = new rxSocket.QueueSubject(); | ||
@@ -321,14 +330,14 @@ vm.channels = new rxSocket.Channels(vm); | ||
function connect(vm, userOptions) { | ||
return new Rx.Observable.create(socketObservable) | ||
return new rxSocket.Rx.Observable.create(socketObservable) | ||
.retryWhen(function (errors) { | ||
return Rx.Observable | ||
.range(0, 100000) | ||
.zip(errors, function (i) { | ||
return i; | ||
}) | ||
.flatMap(function (i) { | ||
vm.retries = i; | ||
vm.connectionStatus.next(connectionStatusOptions.connectionRetry); | ||
return Rx.Observable.timer(5 * 1000); | ||
}); | ||
return rxSocket.Rx.Observable | ||
.range(0, 100000) | ||
.zip(errors, function (i) { | ||
return i; | ||
}) | ||
.flatMap(function (i) { | ||
vm.retries = i; | ||
vm.connectionStatus.next(connectionStatusOptions.connectionRetry); | ||
return rxSocket.Rx.Observable.timer(5 * 1000); | ||
}); | ||
}).share().publishReplay().refCount(); | ||
@@ -335,0 +344,0 @@ |
{ | ||
"name": "rxjs-ws-channels-filters", | ||
"version": "0.3.0", | ||
"version": "0.4.0", | ||
"description": "RxJS websockets implementation with channels and filters", | ||
"main": "dist/index.js", | ||
"dependencies": { | ||
"rxjs": ">=5.5.3" | ||
"rxjs": ">=5.5.5" | ||
}, | ||
"devDependencies": { | ||
"connect": "3.6.5", | ||
"eslint": "4.12.1", | ||
"eslint": "4.13.0", | ||
"gulp": "3.9.1", | ||
@@ -13,0 +13,0 @@ "gulp-clean": "0.3.2", |
18165
355
Updatedrxjs@>=5.5.5