tafel
Routing table built on routington
Tafel encourages the creation of weakmap-powered routers. Route definitions are immutable. Weakmapping eliminates the need to use paths or arbitrary string keys to store and manipulate routing state.
Install
$ npm install --save tafel
Usage
var Table = var table = var users = tablevar user = table var match1 = table//=> match1.key === users//=> match1.params === {} var match2 = table//=> match2.key === user//=> match2.params === {id: '123'} table//=> /users/123
API
Table()
-> object
Creates a new routing table.
table.add(path)
-> object
Defines a new route. Returns a key
that can be used for weakmapping other data associated with routing.
path
Required
Type: string
A routing path definition. See routington.define for more details on defining paths.
table.match(path)
-> null
/ object
Matches a path against the routing table. Returns null
if no match was found. Otherwise returns an object with:
params
Type: object
Matched path params. For the route definition /users/:id
and the path /users/123
, the path params are {id: '123'}
. Note that all values are strings.
key
Type: object
The same key
returned by table.add
.
path
Required
Type: string
An application path (not a path definition).
table.path(key, [params])
-> string
Generates the path for a given route in the same form expected by table.match
as input.
key
Required
Type: object
The route key returned by route.add
.
params
Type: object
Default: {}
Path parameters to interpolate. Each parameter in the URL must be defined.
var route = tablevar path = table//=> /packages/tafel
License
MIT © Ben Drucker