import type { Result, Router } from '../../router.ts' import { checkOptionalParameter } from '../../utils/url.ts' import { Node } from './node.ts' export class TrieRouter implements Router { node: Node constructor() { this.node = new Node() } add(method: string, path: string, handler: T) { const results = checkOptionalParameter(path) if (results) { for (const p of results) { this.node.insert(method, p, handler) } return } this.node.insert(method, path, handler) } match(method: string, path: string): Result | null { return this.node.search(method, path) } }