| "use strict"; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| exports.skipLast = void 0; |
| var identity_1 = require("../util/identity"); |
| var lift_1 = require("../util/lift"); |
| var OperatorSubscriber_1 = require("./OperatorSubscriber"); |
| function skipLast(skipCount) { |
| return skipCount <= 0 |
| ? |
| identity_1.identity |
| : lift_1.operate(function (source, subscriber) { |
| var ring = new Array(skipCount); |
| var seen = 0; |
| source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { |
| var valueIndex = seen++; |
| if (valueIndex < skipCount) { |
| ring[valueIndex] = value; |
| } |
| else { |
| var index = valueIndex % skipCount; |
| var oldValue = ring[index]; |
| ring[index] = value; |
| subscriber.next(oldValue); |
| } |
| })); |
| return function () { |
| ring = null; |
| }; |
| }); |
| } |
| exports.skipLast = skipLast; |
| //# sourceMappingURL=skipLast.js.map |