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') // falseRouterMatch()
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') // falsePath 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') // falseParam
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') // falseRouterCollection
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