JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 47
  • Score
    100M100P100Q78518F
  • License MIT

A router based on a prefix tree (trie).

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).

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 route
  • match(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