Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / rxjs / _esm5 / internal / operators / distinct.js
1 /** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
2 import * as tslib_1 from "tslib";
3 import { OuterSubscriber } from '../OuterSubscriber';
4 import { subscribeToResult } from '../util/subscribeToResult';
5 export function distinct(keySelector, flushes) {
6     return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };
7 }
8 var DistinctOperator = /*@__PURE__*/ (function () {
9     function DistinctOperator(keySelector, flushes) {
10         this.keySelector = keySelector;
11         this.flushes = flushes;
12     }
13     DistinctOperator.prototype.call = function (subscriber, source) {
14         return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));
15     };
16     return DistinctOperator;
17 }());
18 var DistinctSubscriber = /*@__PURE__*/ (function (_super) {
19     tslib_1.__extends(DistinctSubscriber, _super);
20     function DistinctSubscriber(destination, keySelector, flushes) {
21         var _this = _super.call(this, destination) || this;
22         _this.keySelector = keySelector;
23         _this.values = new Set();
24         if (flushes) {
25             _this.add(subscribeToResult(_this, flushes));
26         }
27         return _this;
28     }
29     DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
30         this.values.clear();
31     };
32     DistinctSubscriber.prototype.notifyError = function (error, innerSub) {
33         this._error(error);
34     };
35     DistinctSubscriber.prototype._next = function (value) {
36         if (this.keySelector) {
37             this._useKeySelector(value);
38         }
39         else {
40             this._finalizeNext(value, value);
41         }
42     };
43     DistinctSubscriber.prototype._useKeySelector = function (value) {
44         var key;
45         var destination = this.destination;
46         try {
47             key = this.keySelector(value);
48         }
49         catch (err) {
50             destination.error(err);
51             return;
52         }
53         this._finalizeNext(key, value);
54     };
55     DistinctSubscriber.prototype._finalizeNext = function (key, value) {
56         var values = this.values;
57         if (!values.has(key)) {
58             values.add(key);
59             this.destination.next(value);
60         }
61     };
62     return DistinctSubscriber;
63 }(OuterSubscriber));
64 export { DistinctSubscriber };
65 //# sourceMappingURL=distinct.js.map