Package Exports
- @e22m4u/js-path-trie
- @e22m4u/js-path-trie/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@e22m4u/js-path-trie) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@e22m4u/js-path-trie
English | Русский
A router based on a prefix tree (trie).
- Uses path-to-regexp syntax.
- Supports path parameters.
Installation
npm install @e22m4u/js-path-trie
To load the ES-module, you need to set "type": "module"
in the package.json
file, or use the .mjs
extension.
Example
add(pathTemplate: string, value: unknown)
adds a value to a new routematch(path: string)
returns a value by a given path
const trie = new PathTrie();
// route registration is performed using
// the "add" method, which takes a route
// template and its value
trie.add('/foo/bar', yourValue1);
trie.add('/foo/:p1/bar/:p2', yourValue2);
// to search for a value use the "match"
// method, which returns the route value
// and its parameters
trie.match('/foo/bar');
// {
// value: yourValue1,
// params: {}
// }
// if a route has parameters
// their values will be returned
// in the search result
trie.match('/foo/10/bar/20');
// {
// value: yourValue2,
// params: {p1: 10, p2: 20}
// }
// if a route is not found
// "undefined" is returned
trie.match('/foo/bar/baz');
// undefined
Debugging
Set the DEBUG
variable before the run command to enable log output.
DEBUG=jsPathTrie* npm run test
Testing
npm run test
License
MIT