Philipp Kunz 54ffbadb86 feat(routing): Implement unified routing and matching system
- Introduced a centralized routing module with comprehensive matchers for domains, headers, IPs, and paths.
- Added DomainMatcher for domain pattern matching with support for wildcards and specificity calculation.
- Implemented HeaderMatcher for HTTP header matching, including exact matches and pattern support.
- Developed IpMatcher for IP address matching, supporting CIDR notation, ranges, and wildcards.
- Created PathMatcher for path matching with parameter extraction and wildcard support.
- Established RouteSpecificity class to calculate and compare route specificity scores.
- Enhanced HttpRouter to utilize the new matching system, supporting both modern and legacy route configurations.
- Added detailed logging and error handling for routing operations.
2025-06-02 03:57:52 +00:00

20 lines
829 B
TypeScript

/**
* HTTP routing - Unified HttpRouter with backward compatibility
*/
// Export the unified HttpRouter with backward compatibility aliases
export { HttpRouter, ProxyRouter, RouteRouter } from './http-router.js';
export type { RouterResult, LegacyRouterResult, ILogger } from './http-router.js';
// Legacy type exports for backward compatibility
export type { RouterResult as ProxyRouterResult } from './http-router.js';
export type { RouterResult as RouteRouterResult } from './http-router.js';
// Path pattern config is no longer needed as it's part of IRouteConfig.match.path
export interface IPathPatternConfig {
pathPattern?: string;
}
export type { IPathPatternConfig as PathPatternConfig };
export type { IPathPatternConfig as ProxyPathPatternConfig };
export type { IPathPatternConfig as RoutePathPatternConfig };