limosa
Fast router for both browser and server
See the auto-generated docs
How to use
import { RouterBuilder, RoutesTranslations } from 'limosa';
const routesLangsConfig = new Map([
['login', new Map([['en', 'login'], ['fr', 'connexion']])],
['post', new Map([['en', 'post'], ['fr', 'article']])],
['view', new Map([['en', 'view'], ['fr', 'afficher']])],
]);
const routesTranslations = new RoutesTranslations(routesLangsConfig);
const builder = new RouterBuilder(routesTranslations, ['en', 'fr']);
module.exports = builder.router;
builder
.add('/', '/', 'site.index')
.add('postView', '/post/${id}-${slug}', 'post.view', {
namedParamsDefinition: { slug: '[A-Za-z\-]+' },
extension: 'htm'
})
.addDefaultRoutes();
Build a router
- Named parameter:
${name}
- Optional route part:
[]
like'/post[/${tagKey}]/${id}-${slug}'
- Special named parameters:
controller
,action
,queryString
,hash
.
Url Generator
router.urlGenerator('en', 'postView', { id: '001', 'a-slug' });
// /post/001-a-slug