UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

44 lines (43 loc) 1.22 kB
"use strict"; var __assign = this && this.__assign || (function () { __assign = Object.assign || (function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }); return __assign.apply(this, arguments); }); Object.defineProperty(exports, "__esModule", { value: true }); exports.createReplaySource = void 0; var freeze_1 = require("../../../../../misc/helpers/freeze.cjs"); function createReplaySource(source, maxNumberOfValues) { if (maxNumberOfValues === void 0) { maxNumberOfValues = Number.POSITIVE_INFINITY; } var values = []; var emit = function (value) { values.push(value); if (values.length > maxNumberOfValues) { values.shift(); } source.emit(value); }; var subscribe = function (emit) { for (var i = 0; i < values.length; i++) { emit(values[i]); } return source.subscribe(emit); }; return (0, freeze_1.freeze)(__assign(__assign({}, source), { getValues: function () { return values; }, emit: emit, subscribe: subscribe })); } exports.createReplaySource = createReplaySource;