- 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.
22 lines
565 B
TypeScript
22 lines
565 B
TypeScript
/**
|
|
* Unified matching utilities for the routing system
|
|
* All route matching logic should use these matchers for consistency
|
|
*/
|
|
|
|
export * from './domain.js';
|
|
export * from './path.js';
|
|
export * from './ip.js';
|
|
export * from './header.js';
|
|
|
|
// Re-export for convenience
|
|
import { DomainMatcher } from './domain.js';
|
|
import { PathMatcher } from './path.js';
|
|
import { IpMatcher } from './ip.js';
|
|
import { HeaderMatcher } from './header.js';
|
|
|
|
export const matchers = {
|
|
domain: DomainMatcher,
|
|
path: PathMatcher,
|
|
ip: IpMatcher,
|
|
header: HeaderMatcher
|
|
} as const; |