- 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.
20 lines
829 B
TypeScript
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 };
|