@e22m4u/js-path-trie
v0.0.9
Published
A router for Node.js based on a prefix tree
Downloads
361
Readme
@e22m4u/js-path-trie
English | Русский
A router for Node.js based on a prefix tree (trie).
- Uses path-to-regexp syntax.
- Supports path parameters.
Installation
Node.js 16 or higher is required.
npm install @e22m4u/js-path-trie
The module supports ESM and CommonJS standards.
ESM
import {PathTrie} from '@e22m4u/js-path-trie';
CommonJS
const {PathTrie} = require('@e22m4u/js-path-trie');
Overview
The PathTrie
class has the following methods:
add(pathTemplate: string, value: unknown)
adds a value to a new routematch(path: string)
returns a value by a given path
Example:
import {PathTrie} from '@e22m4u/js-path-trie';
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 to enable log output.
DEBUG=jsPathTrie* npm run test
Testing
npm run test
License
MIT