@e22m4u/js-trie-router 0.5.10 → 0.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +23 -41
- package/package.json +2 -2
- package/src/route/route.d.ts +2 -2
- package/src/trie-router.d.ts +9 -36
- package/src/trie-router.js +23 -41
- package/src/trie-router.spec.js +20 -24
package/dist/cjs/index.cjs
CHANGED
|
@@ -2250,72 +2250,54 @@ var _TrieRouter = class _TrieRouter extends DebuggableService {
|
|
|
2250
2250
|
}
|
|
2251
2251
|
}
|
|
2252
2252
|
/**
|
|
2253
|
-
* Add hook.
|
|
2254
|
-
*
|
|
2255
|
-
* Example:
|
|
2256
|
-
* ```
|
|
2257
|
-
* import {TrieRouter} from '@e22m4u/js-trie-router';
|
|
2258
|
-
* import {RouterHookType} from '@e22m4u/js-trie-router';
|
|
2259
|
-
*
|
|
2260
|
-
* // Router instance.
|
|
2261
|
-
* const router = new TrieRouter();
|
|
2262
|
-
*
|
|
2263
|
-
* // Adds the "preHandler" hook for each route.
|
|
2264
|
-
* router.addHook(
|
|
2265
|
-
* RouterHookType.PRE_HANDLER,
|
|
2266
|
-
* ctx => { ... },
|
|
2267
|
-
* );
|
|
2268
|
-
*
|
|
2269
|
-
* // Adds the "postHandler" hook for each route.
|
|
2270
|
-
* router.addHook(
|
|
2271
|
-
* RouterHookType.POST_HANDLER,
|
|
2272
|
-
* ctx => { ... },
|
|
2273
|
-
* );
|
|
2274
|
-
* ```
|
|
2253
|
+
* Add pre-handler hook.
|
|
2275
2254
|
*
|
|
2276
|
-
* @param {
|
|
2277
|
-
* @param {Function} hook
|
|
2255
|
+
* @param {import('./hooks/index.js').PreHandlerHook} hook
|
|
2278
2256
|
* @returns {this}
|
|
2279
2257
|
*/
|
|
2280
|
-
|
|
2281
|
-
this.getService(RouterHookRegistry).addHook(
|
|
2258
|
+
addPreHandler(hook) {
|
|
2259
|
+
this.getService(RouterHookRegistry).addHook(
|
|
2260
|
+
RouterHookType.PRE_HANDLER,
|
|
2261
|
+
hook
|
|
2262
|
+
);
|
|
2282
2263
|
return this;
|
|
2283
2264
|
}
|
|
2284
2265
|
/**
|
|
2285
|
-
* Has hook.
|
|
2266
|
+
* Has pre-handler hook.
|
|
2286
2267
|
*
|
|
2287
|
-
* @param {
|
|
2288
|
-
* @param {Function} hook
|
|
2268
|
+
* @param {import('./hooks/index.js').PreHandlerHook} hook
|
|
2289
2269
|
* @returns {boolean}
|
|
2290
2270
|
*/
|
|
2291
|
-
|
|
2292
|
-
return this.getService(RouterHookRegistry).hasHook(
|
|
2271
|
+
hasPreHandler(hook) {
|
|
2272
|
+
return this.getService(RouterHookRegistry).hasHook(
|
|
2273
|
+
RouterHookType.PRE_HANDLER,
|
|
2274
|
+
hook
|
|
2275
|
+
);
|
|
2293
2276
|
}
|
|
2294
2277
|
/**
|
|
2295
|
-
* Add
|
|
2278
|
+
* Add post-handler hook.
|
|
2296
2279
|
*
|
|
2297
|
-
* @param {
|
|
2280
|
+
* @param {import('./hooks/index.js').PostHandlerHook} hook
|
|
2298
2281
|
* @returns {this}
|
|
2299
2282
|
*/
|
|
2300
|
-
|
|
2283
|
+
addPostHandler(hook) {
|
|
2301
2284
|
this.getService(RouterHookRegistry).addHook(
|
|
2302
|
-
RouterHookType.
|
|
2285
|
+
RouterHookType.POST_HANDLER,
|
|
2303
2286
|
hook
|
|
2304
2287
|
);
|
|
2305
2288
|
return this;
|
|
2306
2289
|
}
|
|
2307
2290
|
/**
|
|
2308
|
-
*
|
|
2291
|
+
* Has post-handler hook.
|
|
2309
2292
|
*
|
|
2310
|
-
* @param {
|
|
2311
|
-
* @returns {
|
|
2293
|
+
* @param {import('./hooks/index.js').PostHandlerHook} hook
|
|
2294
|
+
* @returns {boolean}
|
|
2312
2295
|
*/
|
|
2313
|
-
|
|
2314
|
-
this.getService(RouterHookRegistry).
|
|
2296
|
+
hasPostHandler(hook) {
|
|
2297
|
+
return this.getService(RouterHookRegistry).hasHook(
|
|
2315
2298
|
RouterHookType.POST_HANDLER,
|
|
2316
2299
|
hook
|
|
2317
2300
|
);
|
|
2318
|
-
return this;
|
|
2319
2301
|
}
|
|
2320
2302
|
};
|
|
2321
2303
|
__name(_TrieRouter, "TrieRouter");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e22m4u/js-trie-router",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.12",
|
|
4
4
|
"description": "HTTP маршрутизатор для Node.js на основе префиксного дерева",
|
|
5
5
|
"author": "Mikhail Evstropov <e22m4u@yandex.ru>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"eslint-plugin-import": "~2.32.0",
|
|
64
64
|
"eslint-plugin-jsdoc": "~61.5.0",
|
|
65
65
|
"eslint-plugin-mocha": "~11.2.0",
|
|
66
|
-
"globals": "~
|
|
66
|
+
"globals": "~17.0.0",
|
|
67
67
|
"husky": "~9.1.7",
|
|
68
68
|
"mocha": "~11.7.5",
|
|
69
69
|
"prettier": "~3.7.4",
|
package/src/route/route.d.ts
CHANGED
package/src/trie-router.d.ts
CHANGED
|
@@ -2,15 +2,9 @@ import {RequestListener} from 'http';
|
|
|
2
2
|
import {Route} from './route/index.js';
|
|
3
3
|
import {RouteDefinition} from './route/index.js';
|
|
4
4
|
import {DebuggableService} from './debuggable-service.js';
|
|
5
|
+
import {PostHandlerHook, PreHandlerHook} from './hooks/index.js';
|
|
5
6
|
import {RouterBranch, RouterBranchDefinition} from './branch/index.js';
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
-
RouterHook,
|
|
9
|
-
RouterHookType,
|
|
10
|
-
PostHandlerHook,
|
|
11
|
-
PreHandlerHook,
|
|
12
|
-
} from './hooks/index.js';
|
|
13
|
-
|
|
14
8
|
/**
|
|
15
9
|
* Trie router.
|
|
16
10
|
*/
|
|
@@ -83,51 +77,30 @@ export declare class TrieRouter extends DebuggableService {
|
|
|
83
77
|
get requestListener(): RequestListener;
|
|
84
78
|
|
|
85
79
|
/**
|
|
86
|
-
* Add hook.
|
|
87
|
-
*
|
|
88
|
-
* @param type
|
|
89
|
-
* @param hook
|
|
90
|
-
*/
|
|
91
|
-
addHook(type: typeof RouterHookType.PRE_HANDLER, hook: PreHandlerHook): this;
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Add hook.
|
|
95
|
-
*
|
|
96
|
-
* @param type
|
|
97
|
-
* @param hook
|
|
98
|
-
*/
|
|
99
|
-
addHook(
|
|
100
|
-
type: typeof RouterHookType.POST_HANDLER,
|
|
101
|
-
hook: PostHandlerHook,
|
|
102
|
-
): this;
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Add hook.
|
|
80
|
+
* Add pre-handler hook.
|
|
106
81
|
*
|
|
107
|
-
* @param type
|
|
108
82
|
* @param hook
|
|
109
83
|
*/
|
|
110
|
-
|
|
84
|
+
addPreHandler(hook: PreHandlerHook): this;
|
|
111
85
|
|
|
112
86
|
/**
|
|
113
|
-
* Has hook.
|
|
87
|
+
* Has pre-handler hook.
|
|
114
88
|
*
|
|
115
|
-
* @param type
|
|
116
89
|
* @param hook
|
|
117
90
|
*/
|
|
118
|
-
|
|
91
|
+
hasPreHandler(hook: PreHandlerHook): boolean;
|
|
119
92
|
|
|
120
93
|
/**
|
|
121
|
-
* Add
|
|
94
|
+
* Add post-handler hook.
|
|
122
95
|
*
|
|
123
96
|
* @param hook
|
|
124
97
|
*/
|
|
125
|
-
|
|
98
|
+
addPostHandler(hook: PostHandlerHook): this;
|
|
126
99
|
|
|
127
100
|
/**
|
|
128
|
-
*
|
|
101
|
+
* Has post-handler hook.
|
|
129
102
|
*
|
|
130
103
|
* @param hook
|
|
131
104
|
*/
|
|
132
|
-
|
|
105
|
+
hasPostHandler(hook: PostHandlerHook): boolean;
|
|
133
106
|
}
|
package/src/trie-router.js
CHANGED
|
@@ -205,74 +205,56 @@ export class TrieRouter extends DebuggableService {
|
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
/**
|
|
208
|
-
* Add hook.
|
|
209
|
-
*
|
|
210
|
-
* Example:
|
|
211
|
-
* ```
|
|
212
|
-
* import {TrieRouter} from '@e22m4u/js-trie-router';
|
|
213
|
-
* import {RouterHookType} from '@e22m4u/js-trie-router';
|
|
214
|
-
*
|
|
215
|
-
* // Router instance.
|
|
216
|
-
* const router = new TrieRouter();
|
|
217
|
-
*
|
|
218
|
-
* // Adds the "preHandler" hook for each route.
|
|
219
|
-
* router.addHook(
|
|
220
|
-
* RouterHookType.PRE_HANDLER,
|
|
221
|
-
* ctx => { ... },
|
|
222
|
-
* );
|
|
223
|
-
*
|
|
224
|
-
* // Adds the "postHandler" hook for each route.
|
|
225
|
-
* router.addHook(
|
|
226
|
-
* RouterHookType.POST_HANDLER,
|
|
227
|
-
* ctx => { ... },
|
|
228
|
-
* );
|
|
229
|
-
* ```
|
|
208
|
+
* Add pre-handler hook.
|
|
230
209
|
*
|
|
231
|
-
* @param {
|
|
232
|
-
* @param {Function} hook
|
|
210
|
+
* @param {import('./hooks/index.js').PreHandlerHook} hook
|
|
233
211
|
* @returns {this}
|
|
234
212
|
*/
|
|
235
|
-
|
|
236
|
-
this.getService(RouterHookRegistry).addHook(
|
|
213
|
+
addPreHandler(hook) {
|
|
214
|
+
this.getService(RouterHookRegistry).addHook(
|
|
215
|
+
RouterHookType.PRE_HANDLER,
|
|
216
|
+
hook,
|
|
217
|
+
);
|
|
237
218
|
return this;
|
|
238
219
|
}
|
|
239
220
|
|
|
240
221
|
/**
|
|
241
|
-
* Has hook.
|
|
222
|
+
* Has pre-handler hook.
|
|
242
223
|
*
|
|
243
|
-
* @param {
|
|
244
|
-
* @param {Function} hook
|
|
224
|
+
* @param {import('./hooks/index.js').PreHandlerHook} hook
|
|
245
225
|
* @returns {boolean}
|
|
246
226
|
*/
|
|
247
|
-
|
|
248
|
-
return this.getService(RouterHookRegistry).hasHook(
|
|
227
|
+
hasPreHandler(hook) {
|
|
228
|
+
return this.getService(RouterHookRegistry).hasHook(
|
|
229
|
+
RouterHookType.PRE_HANDLER,
|
|
230
|
+
hook,
|
|
231
|
+
);
|
|
249
232
|
}
|
|
250
233
|
|
|
251
234
|
/**
|
|
252
|
-
* Add
|
|
235
|
+
* Add post-handler hook.
|
|
253
236
|
*
|
|
254
|
-
* @param {
|
|
237
|
+
* @param {import('./hooks/index.js').PostHandlerHook} hook
|
|
255
238
|
* @returns {this}
|
|
256
239
|
*/
|
|
257
|
-
|
|
240
|
+
addPostHandler(hook) {
|
|
258
241
|
this.getService(RouterHookRegistry).addHook(
|
|
259
|
-
RouterHookType.
|
|
242
|
+
RouterHookType.POST_HANDLER,
|
|
260
243
|
hook,
|
|
261
244
|
);
|
|
262
245
|
return this;
|
|
263
246
|
}
|
|
264
247
|
|
|
265
248
|
/**
|
|
266
|
-
*
|
|
249
|
+
* Has post-handler hook.
|
|
267
250
|
*
|
|
268
|
-
* @param {
|
|
269
|
-
* @returns {
|
|
251
|
+
* @param {import('./hooks/index.js').PostHandlerHook} hook
|
|
252
|
+
* @returns {boolean}
|
|
270
253
|
*/
|
|
271
|
-
|
|
272
|
-
this.getService(RouterHookRegistry).
|
|
254
|
+
hasPostHandler(hook) {
|
|
255
|
+
return this.getService(RouterHookRegistry).hasHook(
|
|
273
256
|
RouterHookType.POST_HANDLER,
|
|
274
257
|
hook,
|
|
275
258
|
);
|
|
276
|
-
return this;
|
|
277
259
|
}
|
|
278
260
|
}
|
package/src/trie-router.spec.js
CHANGED
|
@@ -605,51 +605,47 @@ describe('TrieRouter', function () {
|
|
|
605
605
|
});
|
|
606
606
|
});
|
|
607
607
|
|
|
608
|
-
describe('
|
|
609
|
-
it('should
|
|
608
|
+
describe('addPreHandler', function () {
|
|
609
|
+
it('should register a given hook in the hook registry and return itself', function () {
|
|
610
610
|
const router = new TrieRouter();
|
|
611
611
|
const reg = router.getService(RouterHookRegistry);
|
|
612
|
-
const type = RouterHookType.PRE_HANDLER;
|
|
613
612
|
const hook = () => undefined;
|
|
614
|
-
expect(reg.hasHook(
|
|
615
|
-
const res = router.
|
|
613
|
+
expect(reg.hasHook(RouterHookType.PRE_HANDLER, hook)).to.be.false;
|
|
614
|
+
const res = router.addPreHandler(hook);
|
|
616
615
|
expect(res).to.be.eq(router);
|
|
617
|
-
expect(reg.hasHook(
|
|
616
|
+
expect(reg.hasHook(RouterHookType.PRE_HANDLER, hook)).to.be.true;
|
|
618
617
|
});
|
|
619
618
|
});
|
|
620
619
|
|
|
621
|
-
describe('
|
|
622
|
-
it('should return true if a given
|
|
620
|
+
describe('hasPreHandler', function () {
|
|
621
|
+
it('should return true if a given hook is registered', function () {
|
|
623
622
|
const router = new TrieRouter();
|
|
624
|
-
const type = RouterHookType.PRE_HANDLER;
|
|
625
623
|
const hook = () => undefined;
|
|
626
|
-
expect(router.
|
|
627
|
-
router.
|
|
628
|
-
expect(router.
|
|
624
|
+
expect(router.hasPreHandler(hook)).to.be.false;
|
|
625
|
+
router.addPreHandler(hook);
|
|
626
|
+
expect(router.hasPreHandler(hook)).to.be.true;
|
|
629
627
|
});
|
|
630
628
|
});
|
|
631
629
|
|
|
632
|
-
describe('
|
|
633
|
-
it('should
|
|
630
|
+
describe('addPostHandler', function () {
|
|
631
|
+
it('should register a given hook in the hook registry and return itself', function () {
|
|
634
632
|
const router = new TrieRouter();
|
|
635
633
|
const reg = router.getService(RouterHookRegistry);
|
|
636
634
|
const hook = () => undefined;
|
|
637
|
-
expect(reg.hasHook(RouterHookType.
|
|
638
|
-
const res = router.
|
|
635
|
+
expect(reg.hasHook(RouterHookType.POST_HANDLER, hook)).to.be.false;
|
|
636
|
+
const res = router.addPostHandler(hook);
|
|
639
637
|
expect(res).to.be.eq(router);
|
|
640
|
-
expect(reg.hasHook(RouterHookType.
|
|
638
|
+
expect(reg.hasHook(RouterHookType.POST_HANDLER, hook)).to.be.true;
|
|
641
639
|
});
|
|
642
640
|
});
|
|
643
641
|
|
|
644
|
-
describe('
|
|
645
|
-
it('should
|
|
642
|
+
describe('hasPostHandler', function () {
|
|
643
|
+
it('should return true if a given hook is registered', function () {
|
|
646
644
|
const router = new TrieRouter();
|
|
647
|
-
const reg = router.getService(RouterHookRegistry);
|
|
648
645
|
const hook = () => undefined;
|
|
649
|
-
expect(
|
|
650
|
-
|
|
651
|
-
expect(
|
|
652
|
-
expect(reg.hasHook(RouterHookType.POST_HANDLER, hook)).to.be.true;
|
|
646
|
+
expect(router.hasPostHandler(hook)).to.be.false;
|
|
647
|
+
router.addPostHandler(hook);
|
|
648
|
+
expect(router.hasPostHandler(hook)).to.be.true;
|
|
653
649
|
});
|
|
654
650
|
});
|
|
655
651
|
});
|