New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

cyclic-router

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cyclic-router - npm Package Compare versions

Comparing version 2.1.2 to 3.0.0

10

lib/interfaces.d.ts

@@ -1,7 +0,13 @@

export interface RouteDefinitions {
export interface RouteDefinitionsMap {
[sourcePath: string]: any;
}
export interface SwitchPathReturn {
export interface RouteDefinitionsArray {
[sourceIndex: number]: any;
}
export interface RouteMatcherReturn {
path: string;
value: any;
}
export interface RouteMatcher {
(path: string, routes: RouteDefinitionsMap | RouteDefinitionsArray): RouteMatcherReturn;
}

3

lib/makeRouterDriver.d.ts
import { StreamAdapter } from '@cycle/base';
import { History, HistoryDriverOptions } from '@cycle/history/lib/interfaces';
import { RouteMatcher } from './interfaces';
import { RouterSource } from './RouterSource';

@@ -11,3 +12,3 @@ /**

*/
declare function makeRouterDriver(history: History, options?: HistoryDriverOptions): (sink$: any, runSA: StreamAdapter) => RouterSource;
declare function makeRouterDriver(history: History, routeMatcher: RouteMatcher, options?: HistoryDriverOptions): (sink$: any, runSA: StreamAdapter) => RouterSource;
export { makeRouterDriver };

@@ -11,3 +11,3 @@ "use strict";

*/
function makeRouterDriver(history, options) {
function makeRouterDriver(history, routeMatcher, options) {
var historyDriver = history_1.makeHistoryDriver(history, options);

@@ -26,3 +26,3 @@ /**

var history$ = runSA.remember(historyDriver(sink$, runSA));
return new RouterSource_1.RouterSource(history$, [], history.createHref, runSA);
return new RouterSource_1.RouterSource(history$, [], history.createHref, runSA, routeMatcher);
};

@@ -29,0 +29,0 @@ }

import { StreamAdapter } from '@cycle/base';
import { Pathname } from '@cycle/history/lib/interfaces';
import { RouteDefinitions } from './interfaces';
import { RouteDefinitionsMap, RouteDefinitionsArray, RouteMatcher } from './interfaces';
export declare class RouterSource {

@@ -9,6 +9,7 @@ history$: any;

private _runSA;
constructor(history$: any, _namespace: Pathname[], _createHref: (path: Pathname) => Pathname, _runSA: StreamAdapter);
private _routeMatcher;
constructor(history$: any, _namespace: Pathname[], _createHref: (path: Pathname) => Pathname, _runSA: StreamAdapter, _routeMatcher: RouteMatcher);
path(pathname: Pathname): RouterSource;
define(routes: RouteDefinitions): any;
define(routes: RouteDefinitionsMap | RouteDefinitionsArray, routeMatcher?: RouteMatcher): any;
createHref(path: Pathname): Pathname;
}
"use strict";
var switch_path_1 = require('switch-path');
var util = require('./util');

@@ -15,3 +14,3 @@ function isStrictlyInScope(namespace, path) {

var RouterSource = (function () {
function RouterSource(history$, _namespace, _createHref, _runSA) {
function RouterSource(history$, _namespace, _createHref, _runSA, _routeMatcher) {
this.history$ = history$;

@@ -21,2 +20,3 @@ this._namespace = _namespace;

this._runSA = _runSA;
this._routeMatcher = _routeMatcher;
}

@@ -31,5 +31,6 @@ RouterSource.prototype.path = function (pathname) {

var createHref = this._createHref;
return new RouterSource(scopedHistory$, scopedNamespace, createHref, this._runSA);
return new RouterSource(scopedHistory$, scopedNamespace, createHref, this._runSA, this._routeMatcher);
};
RouterSource.prototype.define = function (routes) {
RouterSource.prototype.define = function (routes, routeMatcher) {
var _this = this;
var namespace = this._namespace;

@@ -40,4 +41,5 @@ var _createHref = this._createHref;

.map(function (location) {
var matcher = routeMatcher || _this._routeMatcher;
var filteredPath = getFilteredPath(namespace, location.pathname);
var _a = switch_path_1.default(filteredPath, routes), path = _a.path, value = _a.value;
var _a = matcher(filteredPath, routes), path = _a.path, value = _a.value;
return { path: path, value: value, location: location, createHref: createHref };

@@ -44,0 +46,0 @@ }));

{
"name": "cyclic-router",
"version": "2.1.2",
"version": "3.0.0",
"description": "A router driver built for Cycle.js",

@@ -41,7 +41,7 @@ "main": "lib/index.js",

"rxjs": "^5.0.0-beta.8",
"testem": "^1.6.0",
"testem": "^1.10.4",
"tslint": "^3.10.2",
"typescript": "^1.8.10",
"typings": "^0.8.1",
"uglify-js": "^2.6.2",
"uglify-js": "^2.7.1",
"validate-commit-message": "^3.0.1",

@@ -48,0 +48,0 @@ "xstream": "^5.0.6"

@@ -44,3 +44,3 @@ # cyclic-router

return value(Object.assign({}, sources, {
router: sources.router.path(path);
router: sources.router.path(path)
}));

@@ -70,1 +70,36 @@ });

```
### Dynamically change route
You can dynamically change route from code by emitting inputs handled by [the history driver](http://cycle.js.org/history/docs/#historyDriver).
```js
function main(sources) {
// ...
const homePageClick$ = sources.DOM.select(".home").events("click");
const previousPageClick$ = sources.DOM.select(".previous").events("click");
const nextPageClick$ = sources.DOM.select(".next").events("click");
const oldPageClick$ = sources.DOM.select(".old").events("click");
const aboutPageClick$ = sources.DOM.select(".about").events("click");
return {
// ...
router: xs.merge(
// Go to page "/"
homePageClick$.mapTo("/"),
// Go back to previous page
previousPageClick$.mapTo({ type: "goBack" }),
// Go forward to next page
nextPageClick$.mapTo({ type: "goForward" }),
// Go back from 5 pages
oldPageClick$.mapTo({ type: "go", value: -5 }),
// Go to page "/about" with some state set to router's location
aboutPageClick$.mapTo({ pathname: "/about", state: { some: "state" } })
),
};
}
```

@@ -7,2 +7,3 @@ /* eslint max-nested-callbacks: 0 */

import {makeRouterDriver, createServerHistory} from '../lib'
import switchPath from 'switch-path';

@@ -23,3 +24,3 @@ describe('Cyclic Router - Rx 4', () => {

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.of('/'), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.of('/'), RxAdapter)
assert.notStrictEqual(router.path, null)

@@ -43,3 +44,3 @@ assert.strictEqual(typeof router.path, 'function')

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.of('/'), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.of('/'), RxAdapter)
.path('/')

@@ -63,3 +64,3 @@ assert.notStrictEqual(router.path, null)

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.from(routes), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.from(routes), RxAdapter)
.path('/path')

@@ -81,3 +82,3 @@

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.from(routes), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.from(routes), RxAdapter)
.path('/some').path('/really').path('/really').path('/deeply')

@@ -100,3 +101,3 @@ .path('/nested').path('/route').path('/that')

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.from(routes), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.from(routes), RxAdapter)
.path('/some').path('/really').path('/really').path('/deeply')

@@ -120,3 +121,3 @@ .path('/nested').path('/route').path('/that')

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.of('/'), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.of('/'), RxAdapter)
.define({})

@@ -137,3 +138,3 @@ assert.strictEqual(router instanceof Observable, true)

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router.define(defintion)

@@ -164,3 +165,3 @@

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router.path('/some').path('/nested').define(defintion)

@@ -193,3 +194,3 @@

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router.path('/some').path('/nested').define(definition)

@@ -221,3 +222,3 @@

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router

@@ -249,3 +250,3 @@ .path('/some').path('/nested').define(defintion)

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router

@@ -252,0 +253,0 @@ .path('/some').path('/nested').define(defintion)

@@ -7,2 +7,3 @@ /* eslint max-nested-callbacks: 0 */

import {makeRouterDriver, createServerHistory} from '../lib'
import switchPath from 'switch-path';

@@ -23,3 +24,3 @@ describe('Cyclic Router - Rx 5', () => {

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.of('/'), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.of('/'), RxAdapter)
assert.notStrictEqual(router.path, null)

@@ -43,3 +44,3 @@ assert.strictEqual(typeof router.path, 'function')

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.of('/'), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.of('/'), RxAdapter)
.path('/')

@@ -63,3 +64,3 @@ assert.notStrictEqual(router.path, null)

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
.path('/path')

@@ -83,3 +84,3 @@

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
.path('/some').path('/really').path('/really').path('/deeply')

@@ -104,3 +105,3 @@ .path('/nested').path('/route').path('/that')

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
.path('/some').path('/really').path('/really').path('/deeply')

@@ -126,3 +127,3 @@ .path('/nested').path('/route').path('/that')

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.of('/'), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.of('/'), RxAdapter)
.define({})

@@ -147,3 +148,3 @@ assert.strictEqual(router instanceof Observable, true)

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router.define(defintion)

@@ -173,3 +174,3 @@

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router.path('/some').path('/nested').define(defintion)

@@ -202,3 +203,3 @@

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router.path('/some').path('/nested').define(definition)

@@ -230,3 +231,3 @@

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router

@@ -258,3 +259,3 @@ .path('/some').path('/nested').define(defintion)

const history = createServerHistory('/')
const router = makeRouterDriver(history)(Observable.never(), RxAdapter)
const router = makeRouterDriver(history, switchPath)(Observable.never(), RxAdapter)
const match$ = router

@@ -261,0 +262,0 @@ .path('/some').path('/nested').define(defintion)

@@ -7,2 +7,3 @@ /* eslint max-nested-callbacks: 0 */

import {makeRouterDriver, createServerHistory} from '../lib'
import switchPath from 'switch-path';

@@ -23,3 +24,3 @@ describe('Cyclic Router - XStream', () => {

const history = createServerHistory()
const router = makeRouterDriver(history)(xs.of('/'), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.of('/'), XSAdapter)
assert.notStrictEqual(router.path, null)

@@ -43,3 +44,3 @@ assert.strictEqual(typeof router.path, 'function')

const history = createServerHistory()
const router = makeRouterDriver(history)(xs.of('/'), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.of('/'), XSAdapter)
.path('/')

@@ -63,3 +64,3 @@ assert.notStrictEqual(router.path, null)

const history = createServerHistory()
const router = makeRouterDriver(history)(xs.fromArray(routes), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.fromArray(routes), XSAdapter)
.path('/path')

@@ -85,3 +86,3 @@

const history = createServerHistory()
const router = makeRouterDriver(history)(xs.fromArray(routes), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.fromArray(routes), XSAdapter)
.path('/some').path('/really').path('/really').path('/deeply')

@@ -108,3 +109,3 @@ .path('/nested').path('/route').path('/that')

const history = createServerHistory()
const router = makeRouterDriver(history)(xs.fromArray(routes), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.fromArray(routes), XSAdapter)
.path('/some').path('/really').path('/really').path('/deeply')

@@ -132,3 +133,3 @@ .path('/nested').path('/route').path('/that')

const history = createServerHistory()
const router = makeRouterDriver(history)(xs.merge(xs.never(), xs.of('/')), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.merge(xs.never(), xs.of('/')), XSAdapter)
.define({})

@@ -149,3 +150,3 @@ assert.strictEqual(router instanceof xs, true)

const history = createServerHistory('/some/route')
const router = makeRouterDriver(history)(xs.never(), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.never(), XSAdapter)
const match$ = router.define(defintion)

@@ -177,3 +178,3 @@

const history = createServerHistory('/wrong/path')
const router = makeRouterDriver(history)(xs.never(), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.never(), XSAdapter)
const match$ = router.path('/some').path('/nested').define(defintion)

@@ -206,3 +207,3 @@

const history = createServerHistory('/wrong/path')
const router = makeRouterDriver(history)(xs.never(), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.never(), XSAdapter)
const match$ = router.path('/some').path('/nested').define(definition)

@@ -234,3 +235,3 @@

const history = createServerHistory('/wrong/path')
const router = makeRouterDriver(history)(xs.never(), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.never(), XSAdapter)
const match$ = router.path('/some').path('/nested').define(definition)

@@ -265,3 +266,3 @@

const history = createServerHistory('/wrong/path')
const router = makeRouterDriver(history)(xs.never(), XSAdapter)
const router = makeRouterDriver(history, switchPath)(xs.never(), XSAdapter)
const match$ = router

@@ -268,0 +269,0 @@ .path('/some').path('/nested').define(defintion)

/// <reference path="browser/ambient/es6-shim/index.d.ts" />
/// <reference path="browser/ambient/mocha/index.d.ts" />
/// <reference path="browser/ambient/node/index.d.ts" />
/// <reference path="browser/definitions/@cycle/history/index.d.ts" />
/// <reference path="main/ambient/es6-shim/index.d.ts" />
/// <reference path="main/ambient/mocha/index.d.ts" />
/// <reference path="main/ambient/node/index.d.ts" />
/// <reference path="main/definitions/@cycle/history/index.d.ts" />

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc