A simple server-side url router using Deterministic Finite Automaton.
This is published at npm registry: dfa-router.
You can install it via npm
, yarn
or what you like.
npm install dfa-router
It behaves like a simple key-value map.
const router = new Router();
router.add('GET', '/foo', 'foo');
router.add('GET', '/bar', 'bar');
const foo = router.route('GET', '/foo');
assert.deepEqual(foo, {
type: 'found',
value: 'foo',
params: new Map([]),
});
const bar = router.route('GET', '/bar');
assert.deepEqual(bar, {
type: 'found',
value: 'bar',
params: new Map([]),
});
And also, it can capture parameters.
const router = new Router();
router.add('GET', '/:param', 'foo');
const foo = router.route('GET', '/value');
assert.deepEqual(foo, {
type: 'found',
value: 'foo',
params: new Map([
['param', 'value']
]),,
});
See examples/server.js
and test/
to learn more.