| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import {Route} from './route.js';
- import {RequestListener} from 'http';
- import {RouteDefinition} from './route.js';
- import {DebuggableService} from './debuggable-service.js';
- import {
- RouterHook,
- RouterHookType,
- PostHandlerHook,
- PreHandlerHook,
- } from './hooks/index.js';
- /**
- * Trie router.
- */
- export declare class TrieRouter extends DebuggableService {
- /**
- * Define route.
- *
- * Example 1:
- * ```
- * const router = new TrieRouter();
- * router.defineRoute({
- * method: HttpMethod.GET, // Request method.
- * path: '/', // Path template.
- * handler: ctx => 'Hello world!', // Request handler.
- * });
- * ```
- *
- * Example 2:
- * ```
- * const router = new TrieRouter();
- * router.defineRoute({
- * method: HttpMethod.POST, // Request method.
- * path: '/users/:id', // The path template may have parameters.
- * preHandler(ctx) { ... }, // The "preHandler" is executed before a route handler.
- * handler(ctx) { ... }, // Request handler function.
- * postHandler(ctx, data) { ... }, // The "postHandler" is executed after a route handler
- * });
- * ```
- *
- * @param routeDef
- */
- defineRoute(routeDef: RouteDefinition): Route;
- /**
- * Request listener.
- *
- * Example:
- * ```
- * import http from 'http';
- * import {TrieRouter} from '@e22m4u/js-trie-router';
- *
- * const router = new TrieRouter();
- * const server = new http.Server();
- * server.on('request', router.requestListener); // Sets the request listener.
- * server.listen(3000); // Starts listening for connections.
- * ```
- *
- * @returns {Function}
- */
- get requestListener(): RequestListener;
- /**
- * Add hook.
- *
- * @param type
- * @param hook
- */
- addHook(type: typeof RouterHookType.PRE_HANDLER, hook: PreHandlerHook): this;
- /**
- * Add hook.
- *
- * @param type
- * @param hook
- */
- addHook(
- type: typeof RouterHookType.POST_HANDLER,
- hook: PostHandlerHook,
- ): this;
- /**
- * Add hook.
- *
- * @param type
- * @param hook
- */
- addHook(type: RouterHookType, hook: RouterHook): this;
- /**
- * Add pre-handler hook.
- *
- * @param hook
- */
- addPreHandler(hook: PreHandlerHook): this;
- /**
- * Add post-handler hook.
- *
- * @param hook
- */
- addPostHandler(hook: PostHandlerHook): this;
- }
|