@lifaon/rx-js-light
Version:
Blazing fast Observables
46 lines (45 loc) • 1.26 kB
JavaScript
;
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.createReplayLastSource = void 0;
var freeze_1 = require("../../../../../misc/helpers/freeze.cjs");
function createReplayLastSource(source, options) {
var currentValue;
var initialized;
if (options === void 0 || !(('initialValue' in options))) {
initialized = false;
} else {
initialized = true;
currentValue = options.initialValue;
}
var emit = function (value) {
initialized = true;
currentValue = value;
source.emit(value);
};
var subscribe = function (emit) {
if (initialized) {
emit(currentValue);
}
return source.subscribe(emit);
};
return (0, freeze_1.freeze)(__assign(__assign({}, source), {
getValue: function () {
return currentValue;
},
emit: emit,
subscribe: subscribe
}));
}
exports.createReplayLastSource = createReplayLastSource;