UNPKG

@motorcycle/router

Version:

Standard Router Driver for Motorcycle.js

39 lines 1.44 kB
"use strict"; var __assign = (this && this.__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; }; Object.defineProperty(exports, "__esModule", { value: true }); var most_1 = require("most"); var prelude_1 = require("@most/prelude"); var most_subject_1 = require("most-subject"); exports.RouterComponent = prelude_1.curry2(function Router(definitions, sources) { var match$ = sources.router.define(definitions).thru(most_subject_1.hold(1)); return match$.filter(isNotNull).map(function (_a) { var path = _a.path, value = _a.value; var router = sources.router.path(path); var sinks = value(__assign({}, sources, { router: router })); var sinks$ = typeof sinks.observe === 'function' ? sinks.map(augmentSinks) : most_1.of(sinks).map(augmentSinks); return sinks$; }) .switch(); }); function augmentSinks(nestedSinks) { return __assign({}, nestedSinks, { router: (nestedSinks.router || most_1.never()).skipRepeatsWith(equalPaths) }); } function isNotNull(_a) { var path = _a.path; return path !== null; } function equalPaths(_a, _b) { var path = _a.path; var path2 = _b.path; return path !== path2; } //# sourceMappingURL=RouterHOC.js.map