|
|
@@ -1,22 +1,20 @@
|
|
|
## @e22m4u/js-path-trie
|
|
|
|
|
|
-*English | [Русский](./README-ru.md)*
|
|
|
+Маршрутизатор для Node.js на основе
|
|
|
+[префиксного дерева](https://ru.wikipedia.org/wiki/Trie) (trie).
|
|
|
|
|
|
-A router for Node.js based on
|
|
|
-a [prefix tree](https://en.wikipedia.org/wiki/Trie) (trie).
|
|
|
+- Использует [path-to-regexp](https://github.com/pillarjs/path-to-regexp) синтаксис.
|
|
|
+- Поддерживает параметры маршрута.
|
|
|
|
|
|
-- Uses [path-to-regexp](https://github.com/pillarjs/path-to-regexp) syntax.
|
|
|
-- Supports path parameters.
|
|
|
+## Установка
|
|
|
|
|
|
-## Installation
|
|
|
-
|
|
|
-Node.js 16 or higher is required.
|
|
|
+Требуется Node.js 16 и выше.
|
|
|
|
|
|
```bash
|
|
|
npm install @e22m4u/js-path-trie
|
|
|
```
|
|
|
|
|
|
-The module supports ESM and CommonJS standards.
|
|
|
+Модуль поддерживает ESM и CommonJS стандарты.
|
|
|
|
|
|
*ESM*
|
|
|
|
|
|
@@ -30,64 +28,64 @@ import {PathTrie} from '@e22m4u/js-path-trie';
|
|
|
const {PathTrie} = require('@e22m4u/js-path-trie');
|
|
|
```
|
|
|
|
|
|
-## Overview
|
|
|
+## Обзор
|
|
|
|
|
|
-The `PathTrie` class has the following methods:
|
|
|
+Класс `PathTrie` имеет следующие методы:
|
|
|
|
|
|
-- `add(pathTemplate: string, value: unknown)` adds a value to a new route
|
|
|
-- `match(path: string)` returns a value by a given path
|
|
|
+- `add(pathTemplate: string, value: unknown)` добавить значение к новому маршруту
|
|
|
+- `match(path: string)` поиск значения по заданному маршруту
|
|
|
|
|
|
-Example:
|
|
|
+Пример:
|
|
|
|
|
|
```js
|
|
|
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
|
|
|
+// добавление маршрутов выполняется
|
|
|
+// методом "add", который принимает
|
|
|
+// шаблон маршрута и его значение
|
|
|
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
|
|
|
+// для поиска значения используется
|
|
|
+// метод "match", который возвращает
|
|
|
+// значение маршрута и его параметры
|
|
|
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
|
|
|
+// если маршрут не найден,
|
|
|
+// то возвращается "undefined"
|
|
|
trie.match('/foo/bar/baz');
|
|
|
// undefined
|
|
|
```
|
|
|
|
|
|
-## Debugging
|
|
|
+## Отладка
|
|
|
|
|
|
-Set the `DEBUG` variable to enable log output.
|
|
|
+Установка переменной `DEBUG` включает вывод логов.
|
|
|
|
|
|
```bash
|
|
|
DEBUG=jsPathTrie* npm run test
|
|
|
```
|
|
|
|
|
|
-## Testing
|
|
|
+## Тестирование
|
|
|
|
|
|
```bash
|
|
|
npm run test
|
|
|
```
|
|
|
|
|
|
-## License
|
|
|
+## Лицензия
|
|
|
|
|
|
MIT
|