inrouter v0.1.1
InRouter
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