| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | "use strict";var __extends = (this && this.__extends) || (function () {    var extendStatics = function (d, b) {        extendStatics = Object.setPrototypeOf ||            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };        return extendStatics(d, b);    }    return function (d, b) {        extendStatics(d, b);        function __() { this.constructor = d; }        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());    };})();Object.defineProperty(exports, "__esModule", { value: true });var innerSubscribe_1 = require("../innerSubscribe");function audit(durationSelector) {    return function auditOperatorFunction(source) {        return source.lift(new AuditOperator(durationSelector));    };}exports.audit = audit;var AuditOperator = (function () {    function AuditOperator(durationSelector) {        this.durationSelector = durationSelector;    }    AuditOperator.prototype.call = function (subscriber, source) {        return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));    };    return AuditOperator;}());var AuditSubscriber = (function (_super) {    __extends(AuditSubscriber, _super);    function AuditSubscriber(destination, durationSelector) {        var _this = _super.call(this, destination) || this;        _this.durationSelector = durationSelector;        _this.hasValue = false;        return _this;    }    AuditSubscriber.prototype._next = function (value) {        this.value = value;        this.hasValue = true;        if (!this.throttled) {            var duration = void 0;            try {                var durationSelector = this.durationSelector;                duration = durationSelector(value);            }            catch (err) {                return this.destination.error(err);            }            var innerSubscription = innerSubscribe_1.innerSubscribe(duration, new innerSubscribe_1.SimpleInnerSubscriber(this));            if (!innerSubscription || innerSubscription.closed) {                this.clearThrottle();            }            else {                this.add(this.throttled = innerSubscription);            }        }    };    AuditSubscriber.prototype.clearThrottle = function () {        var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;        if (throttled) {            this.remove(throttled);            this.throttled = undefined;            throttled.unsubscribe();        }        if (hasValue) {            this.value = undefined;            this.hasValue = false;            this.destination.next(value);        }    };    AuditSubscriber.prototype.notifyNext = function () {        this.clearThrottle();    };    AuditSubscriber.prototype.notifyComplete = function () {        this.clearThrottle();    };    return AuditSubscriber;}(innerSubscribe_1.SimpleOuterSubscriber));//# sourceMappingURL=audit.js.map
 |