obs-router

2.0.5 • Public • Published

obs-router

Mutable observable abstraction of url as route with parameters Deprecated in favor of routeemitter

build status dependencies dev-dependencies

npm

description

ObsRouter provides a two-way mapping between urls (rather pathname + query) and named routes with parameters, given a named set of pathname patterns.

Instances are EventEmitters & optionally (& by default) bind to document location in the browser, using html5-history polyfill.

Also exposes static methods, routeToUrl and urlToRoute, which both take the patterns as their first argument.

Uses route-parser to match and obtain parameters from pathnames, and node native 'querystring' for query parameters.

Check out the documentation.

links

installation

npm install --save obs-router

example

var ObsRouter = require('obs-router');
var presenter = require('./presenter');
var api = require('./api');
 
var router = new ObsRouter({
    home: '/',
    blog: '/blog(/tag/:tag)(/:slug)',
    contact: '/contact'
}, {
    //bindToWindow: false, // would prevent binding to document location on the browser
    initialEmit: true // cause to emit events after nextTick even though nothing has changed
});
 
router.on('route', function(route, params, old_route, old_params){
    presenter.updatePage(route, params);
});
 
router.on('blog', function(params){
    if (params){
        if (params.tag){
            api.getBlogsByTag(params.tag).then(function(blogs){
                presenter.updateBlogQuery(blogs);
            });
        } else if (params.slug){
            api.getBlogBySlug(params.slug).then(function(blog){
                presenter.updateBlog(blog);
            });
        }
    }
});

changelog

2.0.5

  • Fixed readme
  • Deprecated

2.0.4

  • One dependency for lodash utilities

2.0.3

2.0.2

  • Improved documentation
  • fixed google analytics for docs

2.0.1

  • Improved documentation
  • fixed package.json scripts.test command for unix

Package Sidebar

Install

npm i obs-router

Weekly Downloads

2

Version

2.0.5

License

MIT

Last publish

Collaborators

  • zen_flow