diff --git a/lib/park-meta.ts b/lib/park-meta.ts index f96516d..b1b4686 100644 --- a/lib/park-meta.ts +++ b/lib/park-meta.ts @@ -52,21 +52,8 @@ export function areCoastersStale(entry: ParkMeta): boolean { return Date.now() - new Date(entry.coasters_scraped_at).getTime() > COASTER_STALE_MS; } -/** - * Normalize a ride name for fuzzy matching between data sources. - * - * Queue-Times uses branded names (BATMAN™ The Ride, THE JOKER™ Funhouse Coaster) - * while RCDB uses clean names (Batman The Ride, Joker Funhouse Coaster). - * - * Normalization steps: - * 1. Strip trademark/copyright symbols (™ ® ©) - * 2. Strip leading "THE " / "THE" prefix - * 3. Replace punctuation (- : ' ") with spaces - * 4. Collapse runs of whitespace - * 5. Lowercase and trim - */ -export { normalizeForMatch as normalizeRideName } from "./coaster-match.ts"; -import { normalizeForMatch } from "./coaster-match.ts"; +import { normalizeForMatch } from "./coaster-match"; +export { normalizeForMatch as normalizeRideName } from "./coaster-match"; /** * Returns a Set of normalized coaster names for fast membership checks. diff --git a/lib/scrapers/queuetimes.ts b/lib/scrapers/queuetimes.ts index 4bdd660..6180807 100644 --- a/lib/scrapers/queuetimes.ts +++ b/lib/scrapers/queuetimes.ts @@ -7,9 +7,9 @@ * See: https://queue-times.com/en-US/pages/api */ -const BASE = "https://queue-times.com/parks"; +import { isCoasterMatch } from "../coaster-match"; -import { isCoasterMatch, normalizeForMatch } from "../coaster-match.ts"; +const BASE = "https://queue-times.com/parks"; const HEADERS = { "User-Agent": diff --git a/tests/coaster-matching.test.ts b/tests/coaster-matching.test.ts index 5e0c303..2b0646f 100644 --- a/tests/coaster-matching.test.ts +++ b/tests/coaster-matching.test.ts @@ -9,7 +9,7 @@ import { test } from "node:test"; import assert from "node:assert/strict"; -import { isCoasterMatch, normalizeForMatch } from "../lib/coaster-match.ts"; +import { isCoasterMatch, normalizeForMatch } from "../lib/coaster-match"; // ── Helper ──────────────────────────────────────────────────────────────────