UNPKG

rx-synchronizer

Version:

Commonly-used synchronizer bases that can be composed into more specific purposes.

36 lines 1.92 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 }); var javascriptutilities_1 = require("javascriptutilities"); var operators_1 = require("rxjs/operators"); var TriggerSync = require("./trigger"); var deepEqual = require("deep-equal"); var Impl = /** @class */ (function () { function Impl(triggerSync) { if (triggerSync === void 0) { triggerSync = undefined; } this.triggerSync = triggerSync ? triggerSync : new TriggerSync.Impl(); } Impl.prototype.synchronize = function (dependency) { var acceptablePathName = dependency.acceptableUrlPathName; this.triggerSync.synchronize(__assign({}, javascriptutilities_1.Objects.deleteKeys(dependency, 'acceptableUrlPathName', 'asyncOperatorScheduler', 'queryDebounceTime', 'queryStream', 'currentUrlPathName', 'urlQueryReceiver'), { triggerReceiver: dependency.urlQueryReceiver, triggerStream: dependency.queryStream.pipe(operators_1.filter(function () { return acceptablePathName === dependency.currentUrlPathName(); }), (function () { var queryDebounce = dependency.queryDebounceTime; if (queryDebounce) { return function (obs) { return obs.pipe(operators_1.debounceTime(queryDebounce)); }; } return function (obs) { return obs; }; })(), operators_1.distinctUntilChanged(function (query1, query2) { return deepEqual(query1, query2); })) })); }; return Impl; }()); exports.Impl = Impl; //# sourceMappingURL=url-query.js.map