Маршрутизатор для Node.js на основе префиксного дерева

e22m4u 0236965871 chore: adds CommonJS support 1 year ago
.husky 0236965871 chore: adds CommonJS support 1 year ago
dist 0236965871 chore: adds CommonJS support 1 year ago
src a7b2281298 chore: upgrades path-to-regexp to 8.1.0 1 year ago
.c8rc 8a94327bc6 chore: initial commit 1 year ago
.commitlintrc 8a94327bc6 chore: initial commit 1 year ago
.editorconfig 8a94327bc6 chore: initial commit 1 year ago
.gitignore 8a94327bc6 chore: initial commit 1 year ago
.mocharc.cjs 8a94327bc6 chore: initial commit 1 year ago
.prettierrc 8a94327bc6 chore: initial commit 1 year ago
LICENSE 8a94327bc6 chore: initial commit 1 year ago
README-ru.md 3e45d50606 chore: updates description 1 year ago
README.md 3e45d50606 chore: updates description 1 year ago
build-cjs.js 0236965871 chore: adds CommonJS support 1 year ago
eslint.config.js 8a94327bc6 chore: initial commit 1 year ago
package.json 0236965871 chore: adds CommonJS support 1 year ago
tsconfig.json 8a94327bc6 chore: initial commit 1 year ago

README-ru.md

@e22m4u/js-path-trie

English | Русский

Маршрутизатор для Node.js на основе префиксного дерева (trie).

  • Использует path-to-regexp синтаксис.
  • Поддерживает параметры маршрута.

Установка

npm install @e22m4u/js-path-trie

Для загрузки ES-модуля требуется установить "type": "module" в файле package.json, или использовать .mjs расширение.

Пример

  • add(pathTemplate: string, value: unknown) - добавить значение к новому маршруту
  • match(path: string) - поиск значения по заданному маршруту
const trie = new PathTrie();

// добавление маршрутов выполняется
// методом "add", который принимает
// шаблон маршрута и его значение
trie.add('/foo/bar', yourValue1);
trie.add('/foo/:p1/bar/:p2', yourValue2);

// для поиска значения используется
// метод "match", который возвращает
// значение маршрута и его параметры
trie.match('/foo/bar');
// {
//   value: yourValue1,
//   params: {}
// }

// если маршрут имеет параметры,
// то их значения вернуться
// в результате поиска
trie.match('/foo/10/bar/20');
// {
//   value: yourValue2,
//   params: {p1: 10, p2: 20}
// }

// если маршрут не найден,
// то возвращается "undefined"
trie.match('/foo/bar/baz');
// undefined

Отладка

Установка переменной DEBUG перед командой запуска включает вывод логов.

DEBUG=jsPathTrie* npm run test

Тестирование

npm run test

Лицензия

MIT