| "use strict"; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| var async_1 = require("../scheduler/async"); |
| var scan_1 = require("./scan"); |
| var defer_1 = require("../observable/defer"); |
| var map_1 = require("./map"); |
| function timeInterval(scheduler) { |
| if (scheduler === void 0) { scheduler = async_1.async; } |
| return function (source) { return defer_1.defer(function () { |
| return source.pipe(scan_1.scan(function (_a, value) { |
| var current = _a.current; |
| return ({ value: value, current: scheduler.now(), last: current }); |
| }, { current: scheduler.now(), value: undefined, last: undefined }), map_1.map(function (_a) { |
| var current = _a.current, last = _a.last, value = _a.value; |
| return new TimeInterval(value, current - last); |
| })); |
| }); }; |
| } |
| exports.timeInterval = timeInterval; |
| var TimeInterval = (function () { |
| function TimeInterval(value, interval) { |
| this.value = value; |
| this.interval = interval; |
| } |
| return TimeInterval; |
| }()); |
| exports.TimeInterval = TimeInterval; |
| //# sourceMappingURL=timeInterval.js.map |