UNPKG

typescript-dotnet-amd

Version:

A JavaScript-Friendly .NET Based TypeScript Library.

8 lines 1.85 kB
/*! * @author electricessence / https://github.com/electricessence/ * Based upon .NET source. * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md * Source: http://referencesource.microsoft.com/#mscorlib/system/IObserver.cs */ define(["require","exports","../Collections/LinkedNodeList","../Disposable/dispose","./Subscription","../Disposable/DisposableBase","../../extends"],function(s,e,i,r,t,n,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=u["default"],l="SubscribableBase",p=function(s){function e(){return s.call(this,l)||this}return o(e,s),e.prototype._getSubscribers=function(){var s=this.__subscriptions;return s?s.map(function(s){return s&&s.value&&s.value.subscriber}):null},e.prototype._findEntryNode=function(s){var e=this.__subscriptions||null;return e&&e.find(function(e){return!!e.value&&e.value.subscriber===s})},e.prototype.subscribe=function(s){var e=this;e.throwIfDisposed();var r=e._findEntryNode(s);if(r)return r.value;var n=e.__subscriptions;n||(e.__subscriptions=n=new i.LinkedNodeList);var u=new t.Subscription(e,s);return n.addNode({value:u}),u},e.prototype.unsubscribe=function(s){var e=this,i=e._findEntryNode(s);if(i){var r=i.value,t=e.__subscriptions;t&&t.removeNode(i),r&&r.dispose()}},e.prototype._unsubscribeAll=function(s){void 0===s&&(s=!1);var e=this,i=e.__subscriptions;if(!i)return null;var t=i.map(function(s){return s.value}),n=s?t.map(function(s){return s.subscriber}):null;return i.clear(),r.dispose.these.noCopy(t),n},e.prototype.unsubscribeAll=function(){this._unsubscribeAll()},e.prototype._onDispose=function(){s.prototype._onDispose.call(this),this._unsubscribeAll();var e=this.__subscriptions;this.__subscriptions=null,e&&e.dispose()},e}(n.DisposableBase);e.SubscribableBase=p,e["default"]=p}); //# sourceMappingURL=SubscribableBase.js.map