0.1.1 • Published 7 years ago

inrouter v0.1.1

Weekly downloads
1
License
ISC
Repository
github
Last release
7 years ago

InRouter

By Matias Trujillo Olivares

It's a small set of libraries I've created for route management, the goal is to be simple and scalable

RouterMatch

Transforms path into a regular expression, so you can perform simple and effective comparisons.

new RouterMatch()

The constructor gives you access to the defining properties of the regular expression

var router = new RouterMatch('/')
    router.match('/')     // {}
    router.match('/name') // false

RouterMatch()

When using it as a function it returns a new function of test and collection of parameters of the route

var router = RouterMatch('/')
    router('/')     // {}
    router('/name') // false

Path formats for Router Match

The way to construct routes is similar to how it would aria with Express js

Required

When generating the match, this only accepts the route '/param'

    var inParam = RouterMatch('/param')
        inParam('/param')   // {}
        inParam('/paramss') // false

Param

When generating the parameter match, it only accepts routes as '/sample', /sample.css o /img.jpeg.

    var getParam = RouterMatch('/:param')
        getParam('/name') // {param:'name'}

parametro opcional

When generating the optional match, it accepts routes that begin with '/' And whether or not you have an additional attachment as '/sample', '/test' o /img.jpeg

    var getParamOptional = RouterMatch('/:param?')
        getParamOptional('/name') // {param:'name'}
        getParamOptional('/')    //  {param:undefined}

global

When generating the global match, it accepts any routes that it initiates from the pathname '/'

    var getAll = RouterMatch('/...')
        getAll('/sample/master/add') // {remainder:'/sample/master/add'}

all **

When generating the match all, it accepts any route that the pattern has as '/style/main.css' , '/css/style.css' o '/scss/other.css'

    var inStyle = RouterMatch('/**/*.css')
        inStyle('/css/style.css')      // {}
        inStyle('/css/style.css.jpeg') // false

RouterCollection

This makes use of Router Match to dispatch a collection of routes and control the redirections by code

    var router = new RouterCollection;

    router.path('/'
        function in(params){
            // in router
        },
        function out(){
            // out router
        }
    );

    router.dispatch('/');

.path(string)

Add to the collection a route this in turn returns a function to do match directly on the route.

.dispatch(string|number)

Dispatches a route by name or code.

RouterBrowser

Listen and control the changes based on the popstate event in the browser

    var router = new RouterCollection;

    router.path('/'
        function in(params){
            // in router
        },
        function out(){
            // out router
        }
    );
    
    new RouterBrowser([
        function(nowLocation){
            router.dispatch(nowLocation);
        }
    ])

In this way you can dispatch routes to one or more collections using the same listener to the changes of popstate