minor adjustment to readme
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / rxjs / _esm5 / internal / operators / scan.js
1 /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
2 import * as tslib_1 from "tslib";
3 import { Subscriber } from '../Subscriber';
4 export function scan(accumulator, seed) {
5     var hasSeed = false;
6     if (arguments.length >= 2) {
7         hasSeed = true;
8     }
9     return function scanOperatorFunction(source) {
10         return source.lift(new ScanOperator(accumulator, seed, hasSeed));
11     };
12 }
13 var ScanOperator = /*@__PURE__*/ (function () {
14     function ScanOperator(accumulator, seed, hasSeed) {
15         if (hasSeed === void 0) {
16             hasSeed = false;
17         }
18         this.accumulator = accumulator;
19         this.seed = seed;
20         this.hasSeed = hasSeed;
21     }
22     ScanOperator.prototype.call = function (subscriber, source) {
23         return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));
24     };
25     return ScanOperator;
26 }());
27 var ScanSubscriber = /*@__PURE__*/ (function (_super) {
28     tslib_1.__extends(ScanSubscriber, _super);
29     function ScanSubscriber(destination, accumulator, _seed, hasSeed) {
30         var _this = _super.call(this, destination) || this;
31         _this.accumulator = accumulator;
32         _this._seed = _seed;
33         _this.hasSeed = hasSeed;
34         _this.index = 0;
35         return _this;
36     }
37     Object.defineProperty(ScanSubscriber.prototype, "seed", {
38         get: function () {
39             return this._seed;
40         },
41         set: function (value) {
42             this.hasSeed = true;
43             this._seed = value;
44         },
45         enumerable: true,
46         configurable: true
47     });
48     ScanSubscriber.prototype._next = function (value) {
49         if (!this.hasSeed) {
50             this.seed = value;
51             this.destination.next(value);
52         }
53         else {
54             return this._tryNext(value);
55         }
56     };
57     ScanSubscriber.prototype._tryNext = function (value) {
58         var index = this.index++;
59         var result;
60         try {
61             result = this.accumulator(this.seed, value, index);
62         }
63         catch (err) {
64             this.destination.error(err);
65         }
66         this.seed = result;
67         this.destination.next(result);
68     };
69     return ScanSubscriber;
70 }(Subscriber));
71 //# sourceMappingURL=scan.js.map