- Add debounced state updates for title and content (500ms delay) - Immediate UI updates with delayed history saving - Prevent one-letter-per-undo issue - Add cleanup for debounce timers on unmount
27 lines
633 B
JavaScript
27 lines
633 B
JavaScript
// src/router/trie-router/router.ts
|
|
import { checkOptionalParameter } from "../../utils/url.js";
|
|
import { Node } from "./node.js";
|
|
var TrieRouter = class {
|
|
name = "TrieRouter";
|
|
#node;
|
|
constructor() {
|
|
this.#node = new Node();
|
|
}
|
|
add(method, path, handler) {
|
|
const results = checkOptionalParameter(path);
|
|
if (results) {
|
|
for (let i = 0, len = results.length; i < len; i++) {
|
|
this.#node.insert(method, results[i], handler);
|
|
}
|
|
return;
|
|
}
|
|
this.#node.insert(method, path, handler);
|
|
}
|
|
match(method, path) {
|
|
return this.#node.search(method, path);
|
|
}
|
|
};
|
|
export {
|
|
TrieRouter
|
|
};
|