Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including tafel with all npm packages installed. Try it out:

var tafel = require("tafel")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

tafel v1.2.0

Routing table built on routington

tafel Build Status

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.


$ npm install --save tafel


var Table = require('tafel')
var table = Table()

var users = table.add('/users')
var user = table.add('/users/:id')

var match1 = table.match('/users')
//=> match1.key === users
//=> match1.params === {}

var match2 = table.match('/users/123')
//=> match2.key === user
//=> match2.params === {id: '123'}

table.path(user, {id: 123})
//=> /users/123


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.


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:


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.


Type: object

The same key returned by table.add.


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.


Type: object

The route key returned by route.add.


Type: object
Default: {}

Path parameters to interpolate. Each parameter in the URL must be defined.

var route = table.add({path: '/packages/:name'})
var path = table.path(route, {name: 'tafel'})
//=> /packages/tafel


MIT © Ben Drucker


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free