handle-path
A simple route handling tool. Mapping a URL to a handler
Installation
Install handle-path
using npm:
npm install --save handle-path
Usage
Module usage
const handlePath = ; const path pattern value params = ;/** * path = '/item/3' * pattern = '/item/:id' * value = ItemComponent({id}) * params = ['3'] */
Examples
Primitive type as handler
const handlePath = ; const path pattern value params = ;/** * path = '/item/10' * pattern = '/item/:id' * value = 3 * params = ['10'] */
Nested route configuration
const handlePath = ; const path pattern value params = ;/** * path = '/item/10' * pattern = '/item/:id' * value = 3 * params = ['10'] */
Function handler
const handlePath = ; const path pattern value params = ;/** * path = '/item/10' * pattern = '/item/:id' * value = 10 * params = ['10'] */
Related packages
switch-path
- switch case for URLs, a small tool for routing in JavaScript
The differences between switch-path
and handle-path
are:
handle-path
always stops on first pattern match, so keep your catch-all's (i.e."*"
) in the bottom of the handlershandle-path
usespath-to-regexp
under the hood so you can use all of its pattern featureshandle-path
's matching is strict, so/home/page1
won't be matched by/home
you have to use a pattern like/home/*
for thathandle-path
allows you to use functions as values even for patterns without parameters, and they will be called without arguments on pattern match
API
handlePath(path, routes)
Name | Type | Description |
---|---|---|
path | String |
The path to match |
routes | Object |
The routes config |
Returns:
path: String // the matched path on match, otherwise `null` pattern: String // the matched pattern, otherwise `null` value: Mixed // the matched value, otherwise `null` params: Array<String> // the matched params, otherwise `null`
Routes configuration
The routes configuration should be an Object
with path patterns as keys and their handlers as values.
A handler can be of any type, a nested route configuration or a function. Functions are called with any matched path parameters and their return values are used as value
in the handlePath
's return value.
License
MIT © Joakim Carlstein